home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
DTP
/
DTP_TEX
/
H067.ZIP
/
JGUIDE.TEX
(
.txt
)
< prev
next >
Wrap
LaTeX Document
|
1991-04-14
|
175KB
|
3,438 lines
% Process this file twice with big LaTeX. Does not rely on any japanese font.
\typeout{}
\typeout{Japanese [La]TeX for DOS User's Guide Version 2.00 <14 April 1991>}
\typeout{Note: Run big LaTeX two times to resolve cross-references.}
\typeout{Warning: This guide requires approximately 120Kb of memory to process.}
\typeout{}
\hyphenation{jap-a-nese}
\def\LLaTeX{{\rm \raise.2ex\hbox{[}\kern-.05em L\kern-.38em\raise.35ex%
\hbox{\lowercase{a}}\kern-.05em\raise.2ex\hbox{]}\kern-.1em T%
\kern-.1667em\lower.7ex\hbox{E}\kern-.125em X}}
\def\MuTeX{{\rm M\kern-.15em\raise.2ex\hbox{\lowercase{u}}\kern-.32em T%
\kern-.1667em\lower.5ex\hbox{E}\kern-.125em X}}
\def\emTeX{{\rm {\it{em}}\kern-.15em T%
\kern-.1667em\lower.5ex\hbox{E}\kern-.125em X}}
\def\JemTeX{{\rm J\kern-.2em {\it{em}}\kern-.15em T%
\kern-.1667em\lower.5ex\hbox{E}\kern-.125em X}}
\def\MFT{{\small\rm METAFONT}}
\documentstyle[12pt]{article}
\pagestyle{plain}
\begin{document}
\title{Japanese \LLaTeX\ for DOS \\
- User's Guide - \\
{\small (Version 2.00)}}
\author{Fran\c cois Jalbert}
\date{14 April 1991}
\maketitle
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}
\typeout{1 Introduction}
\label{introduction}
Welcome to \JemTeX\ Version~2.00, a simple system to typeset japanese using any
standard version of \TeX\ running under DOS. All you need to create your own
japanese fonts using \MFT\ is included. A preprocessor is also supplied which
will turn the output of your favorite japanese text editor into a standard
\TeX\ document ready for processing.
This guide is divided into four main sections:
\begin{description}
\item[Introduction:] Preliminary remarks (page~\pageref{introduction}).
\item[Japanese Fonts:] The \JemTeX\ fonts (page~\pageref{japanesefonts}).
\item[The \LLaTeX\ Interface:] The \JemTeX\ preprocessor
(page~\pageref{thelatexinterface}).
\item[JemTeX Quick Reference:] Items often referred to
(page~\pageref{jemtexquickreference}).
\end{description}
\subsection{Why \JemTeX}
\label{whyjemtex}
Shortly after adopting japanese as my new hobby, I felt the need to compile my
own small dictionaries and to keep a computer record of all the letters I sent
to my friends in Japan. These japanese documents would, of course, be produced
on my DOS computer. I was also typesetting japanese music with \MuTeX, and I
really wanted to write the lyrics using japanese characters rather than the
roman ones I was currently constrained to use.
Luckily I had \mbox{USENET} access, and in early 1990 I came across Mr.\ Mark
Edward's MOKE~(1.1+) japanese text editor. It supported the most popular
graphics displays, it had all the japanese characters a novice like me would
ever need, it had extensive indexes to find the correct kanjis for any given
word, and it even supported my \mbox{EPSON} printer. I FTP'ed a copy for
myself and arranged to have it made available in T\=oky\=o at utsun
(133.11.11.11) for FTP as well.
Unfortunately, MOKE's quality of output left much to be desired on my
\mbox{9-pin} printer, and MOKE did not have the fancy capabilities of \LaTeX. I
decided to look into public domain japanese versions of \LaTeX\ for DOS
computers. A query on \mbox{USENET} news triggered a long series of
\mbox{e-mail} exchanges. In a nutshell, the news was bad.
First, I could not locate any \MFT\ code to generate the 240~DPI by 216~DPI
fonts needed by my previewing and printing devices. It was out of the question
for me to even think about writing my own \MFT\ code for the thousands of
characters involved in japanese. I did find some 300~DPI public domain fonts,
but they were useless to me. I was told many japanese printers have built-in
fonts, which could explain the lack of public domain external ones.
There was also a serious possibility that loading many fonts might cause any
small implementation of \TeX\ to run out of memory. This was a problem
especially for DOS machines limited for historical reasons to 640~Kb of main
memory. I needed a \TeX\ with some sort of memory paging system for my big
RAM~disk. This problem was solved with Mr.\ Eberhard Mattes' \emTeX\ for DOS.
Its capacity seemed limited solely by \TeX's internal design.
I could not find any macros to enter japanese using standard \LaTeX. I did
come across J\TeX\ and \mbox{ASCII-j\TeX}. However, both required that I build
my own \TeX\ source in C, using exotic tools like WEB and \mbox{TANGLE}. Even
if I ever managed eventually to get some usable C~code, it would not compile
into something very useful because of the 640~Kb main memory limitation of DOS.
It would be necessary to modify the C~code by adding the paging system to it. I
knew nothing of \TeX's internal working. How could I decide correctly which
information should be paged and which should remain in memory at all time? I
decided that adapting J\TeX\ or \mbox{ASCII-j\TeX}\ to DOS appeared too
uncertain and time-consuming.
My situation could be summarized as follows. I had a simple japanese text
editor I could use to enter both english and japanese, and I had a big
implementation of \TeX\ which would not crash if I remained reasonable. But I
lacked japanese fonts and macros to put it all together. The remainder of this
brief guide explains how I solved these two problems.
I call my japanese system \JemTeX. Anybody with a japanese text editor and
\emTeX, or any equivalent implementation of \TeX\ and \MFT, can now produce
simple, but acceptable japanese documents with his DOS computer. Following the
release of the first two versions, people from all over the world expressed
their satisfaction. There is no doubt in my mind that there was a real need for
\JemTeX.
\begin{quote}
\begin{em}
\JemTeX\ is free for all to use and modify. Please feel free to distribute
unmodified copies of it. If you should use parts of\/ \JemTeX, or some of my
ideas in your work, a reference to \JemTeX\ would be appreciated.
\end{em}
\end{quote}
\subsection{\JemTeX\ Files}
\label{jemtexfiles}
\JemTeX\ is distributed compressed with Version~1.1 of the \verb"PKZIP"
utility of PKWARE Inc. You should have received the following file:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
JEMTEX2 ZIP 440435 4-14-91 12:00p
\end{verbatim}
\end{quote}
Unpacking should yield the following files:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
JIS24 562032 4-14-91 12:00p
JIS2MF C 37598 4-14-91 12:00p
JIS2MF PAS 33242 4-14-91 12:00p
JIS2MF EXE 12181 4-14-91 12:00p
JEM2TEX C 47627 4-14-91 12:00p
JEM2TEX PAS 40635 4-14-91 12:00p
JEM2TEX EXE 14203 4-14-91 12:00p
FONTABLE C 5814 4-14-91 12:00p
FONTABLE PAS 4475 4-14-91 12:00p
FONTABLE EXE 4905 4-14-91 12:00p
JGUIDE TEX 175442 4-14-91 12:00p
\end{verbatim}
\end{quote}
All these files will be covered in time in this brief guide.
I supply you with the fastest utilities possible at the moment, which are
sometime C versions, sometime Pascal versions. The programs compile fine with
recent DOS turbo compilers and UNIX gcc. Note that the executables are also
compressed with the \verb"LZEXE" utility of Mr.\ Fabrice Bellard. The
decompression automatically occurs at runtime.
\subsection{Author's Address}
\label{authorsaddress}
There is still a lot I do not understand about \LLaTeX\ and, especially,
japanese. I apologize in advance for my errors. If you have any comments, or
simply wish to be put on my mailing list, do not hesitate to contact the
author:
\begin{quote}
Fran\c cois Jalbert \\
220 Forest \\
Ch\^ateauguay, QC \\
CANADA \\
J6J 1R1 \\
\verb"jalbert@CS.UBC.CA" \\
\verb"jalbert@IRO.UMontreal.CA"
\end{quote}
\subsection{Acknowledgments}
\label{acknowledgments}
I would like to take this opportunity to thank all the people who helped me in
this quest for knowledge, especially Mr.\ Takafumi Sakurai who is very familiar
with J\TeX. Finally, I must also thank all the users who helped to improve this
package with their comments. Keep them coming! In fact, Version~2.00 would not
have been possible without Mr.\ Masatoshi Watanabe, the author of JaWa\TeX. I
am greatly grateful to him for his contribution to my \verb"JIS2MF" program.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Japanese Fonts}
\typeout{2 Japanese Fonts}
\label{japanesefonts}
In this section, I describe how I solved the font problem. I first introduce
the JIS~24 dot font which is the key behind the \JemTeX\ fonts. A discussion of
horizontal and vertical writing styles then becomes essential since writing
style influences the ideal characteristics of a font. I conclude the first part
of this section by explaining how to run my \verb"JIS2MF" \MFT\ code generation
program and \MFT\ itself.
I include a few more technical details in the second part of this section.
Strictly speaking, this information is not mandatory and the reader in a hurry
will do well to simply skip it. But the inquiring one will have a chance to
take a closer look at the \MFT\ code generated and at the underlying algorithm.
\subsection{The JIS~24 Dot Font}
\label{thejis24dotfont}
The font problem is solved using the JIS~24 dot font of Mr.\ Yasuki Saito. It
is a series of 24~by~24 bitmaps organized sequentially. There is room for
7806~bitmaps in the file \verb"JIS24", but several bitmaps are simply left
empty in the current version.
\label{standard}
The JIS~'83 standard states which characters are defined in the JIS~24 dot font
and what position they occupy. However, several computer manufacturers have
taken the liberty of defining their own additional 24~by~24 bitmaps which they
place here and there at locations currently left empty by JIS~'83. The
resulting {\em extended\/} JIS~24 dot fonts exist in many different
incompatible versions.
\label{extended}
\JemTeX\ uses such an extended JIS~24 dot font. I do not know who is
responsible for its extension, but I certainly welcome the extra characters.
Besides a wealth of miscellaneous characters, a complete half-width roman and
japanese character set is available. You may choose to use them, or to restrict
yourself to standard JIS~'83 characters only.
No doubt one can mechanize the creation of fonts from such bitmaps. There seems
to be two ways of handling the problem. First, one could generate fonts
directly from the bitmaps without using \MFT\ at all. Indeed, I know that
several fonts in J\TeX\ were created just that way. However, I suspect that it
might be difficult to scale fonts using non-integer factors. To further
complicate the scaling problem, my devices do not have the same horizontal and
vertical resolution. Besides, I feel that \MFT\ can deal with such scaling
issues better than I probably can in a mere few days of work.
Consequently, I prefer to create \MFT\ code out of the bitmaps. A good example
of such an approach is the \verb"ega2mf" program of Mr.\ Thomas B.\ Ridgeway.
This program reads bitmaps and creates \MFT\ code where each character is a
small matrix of dots. The purpose of such fonts is to mimic the looks of
CRT~screens on paper. This is does so well that in fact, I find that the
japanese characters look too much like bitmaps! I want these dots to disappear
and a continuous outline to replace them. Nevertheless, \verb"ega2mf" clearly
demonstrates that the goal can be reached.
I started from scratch, using a \MFT\ book and came up with my own \MFT\ code
generation program \verb"JIS2MF". It reads bitmaps from \verb"JIS24", and it
then constructs continuous characters, using squares, triangles, and quarter
circles. My program has been substantially improved by Mr.\ Masatoshi Watanabe.
A complete description is found in Subsections~\ref{themetafontcode}
and~\ref{algorithm}.
\subsection{Writing Styles}
\label{writingstyles}
It is clear from the lack of a vertical baseline in \MFT\ that \TeX\ was solely
designed for horizontal use. Indeed, \TeX\ can typeset japanese horizontally as
well as it does for english. This does not imply that vertical use of \TeX\ is
impossible, but it merely suggests that extra care will be required. In this
subsection, I would like to discuss and compare both writing styles. The
appropriate font properties can then be determined.
\label{widthheight}
The first features of interest in this subsection are character width,
character height, and distance from the baseline. Consider first a few roman
characters and their horizontal baseline:
\begin{center}
\setlength{\unitlength}{0.4pt}
\begin{picture}(80,30)
\thinlines
\put(0,5){\line(1,0){80}}
\put(0,0){\makebox(80,30){dip}}
\end{picture}
\end{center}
The width of each character is minimized and this is important in english
writing. However, the height of each character is unimportant. It is the
vertical relationship between the character and its horizontal baseline which
matters.
Consider now a few japanese characters and their horizontal baseline:
\begin{center}
\setlength{\unitlength}{0.4pt}
\newsavebox{\watashi}
\sbox{\watashi}{%
\begin{picture}(28,26)(-2,-2)%Bitmap 2512
\put(0.5,4.5){\circle*{1}}\put(0.5,15.5){\circle*{1}}
\put(0.5,19.5){\circle*{1}}\put(1.5,5.5){\circle*{1}}
\put(1.5,15.5){\circle*{1}}\put(1.5,19.5){\circle*{1}}
\put(2.5,6.5){\circle*{1}}\put(2.5,7.5){\circle*{1}}
\put(2.5,15.5){\circle*{1}}\put(2.5,19.5){\circle*{1}}
\put(3.5,7.5){\circle*{1}}\put(3.5,8.5){\circle*{1}}
\put(3.5,9.5){\circle*{1}}\put(3.5,15.5){\circle*{1}}
\put(3.5,20.5){\circle*{1}}\put(4.5,9.5){\circle*{1}}
\put(4.5,10.5){\circle*{1}}\put(4.5,11.5){\circle*{1}}
\put(4.5,12.5){\circle*{1}}\put(4.5,15.5){\circle*{1}}
\put(4.5,20.5){\circle*{1}}\put(5.5,0.5){\circle*{1}}
\put(5.5,1.5){\circle*{1}}\put(5.5,2.5){\circle*{1}}
\put(5.5,3.5){\circle*{1}}\put(5.5,4.5){\circle*{1}}
\put(5.5,5.5){\circle*{1}}\put(5.5,6.5){\circle*{1}}
\put(5.5,7.5){\circle*{1}}\put(5.5,8.5){\circle*{1}}
\put(5.5,9.5){\circle*{1}}\put(5.5,10.5){\circle*{1}}
\put(5.5,11.5){\circle*{1}}\put(5.5,12.5){\circle*{1}}
\put(5.5,13.5){\circle*{1}}\put(5.5,14.5){\circle*{1}}
\put(5.5,15.5){\circle*{1}}\put(5.5,16.5){\circle*{1}}
\put(5.5,17.5){\circle*{1}}\put(5.5,18.5){\circle*{1}}
\put(5.5,19.5){\circle*{1}}\put(5.5,20.5){\circle*{1}}
\put(6.5,0.5){\circle*{1}}\put(6.5,1.5){\circle*{1}}
\put(6.5,2.5){\circle*{1}}\put(6.5,3.5){\circle*{1}}
\put(6.5,4.5){\circle*{1}}\put(6.5,5.5){\circle*{1}}
\put(6.5,6.5){\circle*{1}}\put(6.5,7.5){\circle*{1}}
\put(6.5,8.5){\circle*{1}}\put(6.5,9.5){\circle*{1}}
\put(6.5,10.5){\circle*{1}}\put(6.5,11.5){\circle*{1}}
\put(6.5,12.5){\circle*{1}}\put(6.5,13.5){\circle*{1}}
\put(6.5,14.5){\circle*{1}}\put(6.5,15.5){\circle*{1}}
\put(6.5,16.5){\circle*{1}}\put(6.5,17.5){\circle*{1}}
\put(6.5,18.5){\circle*{1}}\put(6.5,19.5){\circle*{1}}
\put(6.5,20.5){\circle*{1}}\put(6.5,21.5){\circle*{1}}
\put(7.5,11.5){\circle*{1}}\put(7.5,15.5){\circle*{1}}
\put(7.5,21.5){\circle*{1}}\put(8.5,11.5){\circle*{1}}
\put(8.5,15.5){\circle*{1}}\put(8.5,21.5){\circle*{1}}
\put(8.5,22.5){\circle*{1}}\put(9.5,2.5){\circle*{1}}
\put(9.5,10.5){\circle*{1}}\put(9.5,15.5){\circle*{1}}
\put(9.5,16.5){\circle*{1}}\put(9.5,22.5){\circle*{1}}
\put(9.5,23.5){\circle*{1}}\put(10.5,0.5){\circle*{1}}
\put(10.5,1.5){\circle*{1}}\put(10.5,2.5){\circle*{1}}
\put(10.5,8.5){\circle*{1}}\put(10.5,9.5){\circle*{1}}
\put(10.5,10.5){\circle*{1}}\put(10.5,15.5){\circle*{1}}
\put(10.5,16.5){\circle*{1}}\put(10.5,22.5){\circle*{1}}
\put(10.5,23.5){\circle*{1}}\put(11.5,1.5){\circle*{1}}
\put(11.5,2.5){\circle*{1}}\put(11.5,8.5){\circle*{1}}
\put(11.5,9.5){\circle*{1}}\put(11.5,15.5){\circle*{1}}
\put(11.5,22.5){\circle*{1}}\put(12.5,1.5){\circle*{1}}
\put(12.5,2.5){\circle*{1}}\put(13.5,1.5){\circle*{1}}
\put(13.5,2.5){\circle*{1}}\put(13.5,3.5){\circle*{1}}
\put(13.5,4.5){\circle*{1}}\put(14.5,2.5){\circle*{1}}
\put(14.5,5.5){\circle*{1}}\put(14.5,6.5){\circle*{1}}
\put(14.5,7.5){\circle*{1}}\put(14.5,8.5){\circle*{1}}
\put(15.5,2.5){\circle*{1}}\put(15.5,7.5){\circle*{1}}
\put(15.5,8.5){\circle*{1}}\put(15.5,9.5){\circle*{1}}
\put(15.5,10.5){\circle*{1}}\put(15.5,11.5){\circle*{1}}
\put(15.5,12.5){\circle*{1}}\put(15.5,13.5){\circle*{1}}
\put(15.5,14.5){\circle*{1}}\put(15.5,15.5){\circle*{1}}
\put(16.5,2.5){\circle*{1}}\put(16.5,11.5){\circle*{1}}
\put(16.5,12.5){\circle*{1}}\put(16.5,13.5){\circle*{1}}
\put(16.5,14.5){\circle*{1}}\put(16.5,15.5){\circle*{1}}
\put(16.5,16.5){\circle*{1}}\put(16.5,17.5){\circle*{1}}
\put(16.5,18.5){\circle*{1}}\put(16.5,19.5){\circle*{1}}
\put(16.5,20.5){\circle*{1}}\put(16.5,21.5){\circle*{1}}
\put(16.5,22.5){\circle*{1}}\put(16.5,23.5){\circle*{1}}
\put(17.5,2.5){\circle*{1}}\put(17.5,16.5){\circle*{1}}
\put(17.5,17.5){\circle*{1}}\put(17.5,18.5){\circle*{1}}
\put(17.5,19.5){\circle*{1}}\put(17.5,20.5){\circle*{1}}
\put(17.5,21.5){\circle*{1}}\put(17.5,22.5){\circle*{1}}
\put(18.5,3.5){\circle*{1}}\put(18.5,22.5){\circle*{1}}
\put(19.5,3.5){\circle*{1}}\put(19.5,7.5){\circle*{1}}
\put(20.5,3.5){\circle*{1}}\put(20.5,5.5){\circle*{1}}
\put(20.5,6.5){\circle*{1}}\put(21.5,3.5){\circle*{1}}
\put(21.5,4.5){\circle*{1}}\put(21.5,5.5){\circle*{1}}
\put(22.5,0.5){\circle*{1}}\put(22.5,1.5){\circle*{1}}
\put(22.5,2.5){\circle*{1}}\put(22.5,3.5){\circle*{1}}
\put(22.5,4.5){\circle*{1}}\put(23.5,0.5){\circle*{1}}
\put(23.5,1.5){\circle*{1}}\put(23.5,2.5){\circle*{1}}
\end{picture}}
\begin{picture}(250,28)
\thinlines
\put(0,0){\line(1,0){250}}
\put(20,0){%
\begin{picture}(28,26)(-2,-2)%Bitmap 288
\put(5.5,15.5){\circle*{1}}\put(6.5,13.5){\circle*{1}}
\put(6.5,14.5){\circle*{1}}\put(7.5,13.5){\circle*{1}}
\put(7.5,14.5){\circle*{1}}\put(8.5,1.5){\circle*{1}}
\put(8.5,14.5){\circle*{1}}\put(9.5,1.5){\circle*{1}}
\put(9.5,14.5){\circle*{1}}\put(9.5,15.5){\circle*{1}}
\put(9.5,23.5){\circle*{1}}\put(10.5,1.5){\circle*{1}}
\put(10.5,15.5){\circle*{1}}\put(10.5,23.5){\circle*{1}}
\put(11.5,2.5){\circle*{1}}\put(11.5,15.5){\circle*{1}}
\put(11.5,16.5){\circle*{1}}\put(11.5,22.5){\circle*{1}}
\put(12.5,2.5){\circle*{1}}\put(12.5,16.5){\circle*{1}}
\put(12.5,22.5){\circle*{1}}\put(13.5,3.5){\circle*{1}}
\put(13.5,16.5){\circle*{1}}\put(13.5,21.5){\circle*{1}}
\put(13.5,22.5){\circle*{1}}\put(14.5,3.5){\circle*{1}}
\put(14.5,4.5){\circle*{1}}\put(14.5,16.5){\circle*{1}}
\put(14.5,20.5){\circle*{1}}\put(14.5,21.5){\circle*{1}}
\put(15.5,4.5){\circle*{1}}\put(15.5,5.5){\circle*{1}}
\put(15.5,6.5){\circle*{1}}\put(15.5,15.5){\circle*{1}}
\put(15.5,20.5){\circle*{1}}\put(15.5,21.5){\circle*{1}}
\put(16.5,5.5){\circle*{1}}\put(16.5,6.5){\circle*{1}}
\put(16.5,7.5){\circle*{1}}\put(16.5,8.5){\circle*{1}}
\put(16.5,9.5){\circle*{1}}\put(16.5,10.5){\circle*{1}}
\put(16.5,11.5){\circle*{1}}\put(16.5,12.5){\circle*{1}}
\put(16.5,13.5){\circle*{1}}\put(16.5,14.5){\circle*{1}}
\put(17.5,7.5){\circle*{1}}\put(17.5,8.5){\circle*{1}}
\put(17.5,9.5){\circle*{1}}\put(17.5,10.5){\circle*{1}}
\put(17.5,11.5){\circle*{1}}\put(17.5,12.5){\circle*{1}}
\put(17.5,13.5){\circle*{1}}
\end{picture}}
\put(50,0){\usebox{\watashi}}
\put(80,0){%
\begin{picture}(28,26)(-2,-2)%Bitmap 356
\put(6.5,10.5){\circle*{1}}\put(6.5,11.5){\circle*{1}}
\put(6.5,12.5){\circle*{1}}\put(6.5,13.5){\circle*{1}}
\put(6.5,14.5){\circle*{1}}\put(6.5,15.5){\circle*{1}}
\put(6.5,16.5){\circle*{1}}\put(6.5,17.5){\circle*{1}}
\put(6.5,22.5){\circle*{1}}\put(6.5,23.5){\circle*{1}}
\put(7.5,9.5){\circle*{1}}\put(7.5,10.5){\circle*{1}}
\put(7.5,11.5){\circle*{1}}\put(7.5,12.5){\circle*{1}}
\put(7.5,13.5){\circle*{1}}\put(7.5,14.5){\circle*{1}}
\put(7.5,15.5){\circle*{1}}\put(7.5,16.5){\circle*{1}}
\put(7.5,17.5){\circle*{1}}\put(7.5,18.5){\circle*{1}}
\put(7.5,19.5){\circle*{1}}\put(7.5,20.5){\circle*{1}}
\put(7.5,21.5){\circle*{1}}\put(7.5,22.5){\circle*{1}}
\put(8.5,14.5){\circle*{1}}\put(8.5,15.5){\circle*{1}}
\put(9.5,16.5){\circle*{1}}\put(9.5,17.5){\circle*{1}}
\put(10.5,0.5){\circle*{1}}\put(10.5,18.5){\circle*{1}}
\put(10.5,19.5){\circle*{1}}\put(11.5,0.5){\circle*{1}}
\put(11.5,20.5){\circle*{1}}\put(12.5,1.5){\circle*{1}}
\put(12.5,21.5){\circle*{1}}\put(13.5,1.5){\circle*{1}}
\put(13.5,2.5){\circle*{1}}\put(13.5,21.5){\circle*{1}}
\put(14.5,2.5){\circle*{1}}\put(14.5,3.5){\circle*{1}}
\put(14.5,21.5){\circle*{1}}\put(15.5,3.5){\circle*{1}}
\put(15.5,4.5){\circle*{1}}\put(15.5,5.5){\circle*{1}}
\put(15.5,20.5){\circle*{1}}\put(15.5,21.5){\circle*{1}}
\put(16.5,4.5){\circle*{1}}\put(16.5,5.5){\circle*{1}}
\put(16.5,6.5){\circle*{1}}\put(16.5,7.5){\circle*{1}}
\put(16.5,8.5){\circle*{1}}\put(16.5,18.5){\circle*{1}}
\put(16.5,19.5){\circle*{1}}\put(16.5,20.5){\circle*{1}}
\put(17.5,6.5){\circle*{1}}\put(17.5,7.5){\circle*{1}}
\put(17.5,8.5){\circle*{1}}\put(17.5,9.5){\circle*{1}}
\put(17.5,10.5){\circle*{1}}\put(17.5,11.5){\circle*{1}}
\put(17.5,12.5){\circle*{1}}\put(17.5,13.5){\circle*{1}}
\put(17.5,14.5){\circle*{1}}\put(17.5,15.5){\circle*{1}}
\put(17.5,16.5){\circle*{1}}\put(17.5,17.5){\circle*{1}}
\put(17.5,18.5){\circle*{1}}\put(17.5,19.5){\circle*{1}}
\put(18.5,9.5){\circle*{1}}\put(18.5,10.5){\circle*{1}}
\put(18.5,11.5){\circle*{1}}\put(18.5,12.5){\circle*{1}}
\put(18.5,13.5){\circle*{1}}\put(18.5,14.5){\circle*{1}}
\put(18.5,15.5){\circle*{1}}\put(18.5,16.5){\circle*{1}}
\put(18.5,17.5){\circle*{1}}
\end{picture}}
\put(110,0){\usebox{\watashi}}
\put(140,0){%
\begin{picture}(28,26)(-2,-2)%Bitmap 2146
\put(1.5,0.5){\circle*{1}}\put(2.5,0.5){\circle*{1}}
\put(3.5,1.5){\circle*{1}}\put(4.5,2.5){\circle*{1}}
\put(4.5,3.5){\circle*{1}}\put(5.5,3.5){\circle*{1}}
\put(5.5,4.5){\circle*{1}}\put(5.5,5.5){\circle*{1}}
\put(5.5,6.5){\circle*{1}}\put(6.5,5.5){\circle*{1}}
\put(6.5,6.5){\circle*{1}}\put(6.5,7.5){\circle*{1}}
\put(6.5,8.5){\circle*{1}}\put(6.5,9.5){\circle*{1}}
\put(6.5,10.5){\circle*{1}}\put(6.5,11.5){\circle*{1}}
\put(6.5,12.5){\circle*{1}}\put(6.5,13.5){\circle*{1}}
\put(6.5,14.5){\circle*{1}}\put(6.5,15.5){\circle*{1}}
\put(6.5,16.5){\circle*{1}}\put(6.5,17.5){\circle*{1}}
\put(6.5,18.5){\circle*{1}}\put(6.5,19.5){\circle*{1}}
\put(6.5,20.5){\circle*{1}}\put(6.5,21.5){\circle*{1}}
\put(6.5,22.5){\circle*{1}}\put(6.5,23.5){\circle*{1}}
\put(7.5,7.5){\circle*{1}}\put(7.5,8.5){\circle*{1}}
\put(7.5,9.5){\circle*{1}}\put(7.5,10.5){\circle*{1}}
\put(7.5,11.5){\circle*{1}}\put(7.5,12.5){\circle*{1}}
\put(7.5,13.5){\circle*{1}}\put(7.5,14.5){\circle*{1}}
\put(7.5,15.5){\circle*{1}}\put(7.5,16.5){\circle*{1}}
\put(7.5,17.5){\circle*{1}}\put(7.5,18.5){\circle*{1}}
\put(7.5,19.5){\circle*{1}}\put(7.5,20.5){\circle*{1}}
\put(7.5,21.5){\circle*{1}}\put(7.5,22.5){\circle*{1}}
\put(8.5,10.5){\circle*{1}}\put(8.5,16.5){\circle*{1}}
\put(8.5,22.5){\circle*{1}}\put(9.5,10.5){\circle*{1}}
\put(9.5,16.5){\circle*{1}}\put(9.5,22.5){\circle*{1}}
\put(10.5,10.5){\circle*{1}}\put(10.5,16.5){\circle*{1}}
\put(10.5,22.5){\circle*{1}}\put(11.5,10.5){\circle*{1}}
\put(11.5,16.5){\circle*{1}}\put(11.5,22.5){\circle*{1}}
\put(12.5,10.5){\circle*{1}}\put(12.5,16.5){\circle*{1}}
\put(12.5,22.5){\circle*{1}}\put(13.5,10.5){\circle*{1}}
\put(13.5,16.5){\circle*{1}}\put(13.5,22.5){\circle*{1}}
\put(14.5,1.5){\circle*{1}}\put(14.5,10.5){\circle*{1}}
\put(14.5,16.5){\circle*{1}}\put(14.5,22.5){\circle*{1}}
\put(15.5,1.5){\circle*{1}}\put(15.5,10.5){\circle*{1}}
\put(15.5,16.5){\circle*{1}}\put(15.5,22.5){\circle*{1}}
\put(16.5,0.5){\circle*{1}}\put(16.5,1.5){\circle*{1}}
\put(16.5,10.5){\circle*{1}}\put(16.5,16.5){\circle*{1}}
\put(16.5,22.5){\circle*{1}}\put(17.5,0.5){\circle*{1}}
\put(17.5,1.5){\circle*{1}}\put(17.5,2.5){\circle*{1}}
\put(17.5,3.5){\circle*{1}}\put(17.5,4.5){\circle*{1}}
\put(17.5,5.5){\circle*{1}}\put(17.5,6.5){\circle*{1}}
\put(17.5,7.5){\circle*{1}}\put(17.5,8.5){\circle*{1}}
\put(17.5,9.5){\circle*{1}}\put(17.5,10.5){\circle*{1}}
\put(17.5,11.5){\circle*{1}}\put(17.5,12.5){\circle*{1}}
\put(17.5,13.5){\circle*{1}}\put(17.5,14.5){\circle*{1}}
\put(17.5,15.5){\circle*{1}}\put(17.5,16.5){\circle*{1}}
\put(17.5,17.5){\circle*{1}}\put(17.5,18.5){\circle*{1}}
\put(17.5,19.5){\circle*{1}}\put(17.5,20.5){\circle*{1}}
\put(17.5,21.5){\circle*{1}}\put(17.5,22.5){\circle*{1}}
\put(17.5,23.5){\circle*{1}}\put(18.5,1.5){\circle*{1}}
\put(18.5,2.5){\circle*{1}}\put(18.5,3.5){\circle*{1}}
\put(18.5,4.5){\circle*{1}}\put(18.5,5.5){\circle*{1}}
\put(18.5,6.5){\circle*{1}}\put(18.5,7.5){\circle*{1}}
\put(18.5,8.5){\circle*{1}}\put(18.5,9.5){\circle*{1}}
\put(18.5,10.5){\circle*{1}}\put(18.5,11.5){\circle*{1}}
\put(18.5,12.5){\circle*{1}}\put(18.5,13.5){\circle*{1}}
\put(18.5,14.5){\circle*{1}}\put(18.5,15.5){\circle*{1}}
\put(18.5,16.5){\circle*{1}}\put(18.5,17.5){\circle*{1}}
\put(18.5,18.5){\circle*{1}}\put(18.5,19.5){\circle*{1}}
\put(18.5,20.5){\circle*{1}}\put(18.5,21.5){\circle*{1}}
\put(18.5,22.5){\circle*{1}}\put(18.5,23.5){\circle*{1}}
\put(19.5,22.5){\circle*{1}}
\end{picture}}
\put(170,0){\usebox{\watashi}}
\put(200,0){%
\begin{picture}(28,26)(-2,-2)%Bitmap 2549
\put(4.5,0.5){\circle*{1}}\put(4.5,1.5){\circle*{1}}
\put(4.5,2.5){\circle*{1}}\put(4.5,3.5){\circle*{1}}
\put(4.5,4.5){\circle*{1}}\put(4.5,5.5){\circle*{1}}
\put(4.5,6.5){\circle*{1}}\put(4.5,7.5){\circle*{1}}
\put(4.5,8.5){\circle*{1}}\put(4.5,9.5){\circle*{1}}
\put(4.5,10.5){\circle*{1}}\put(4.5,11.5){\circle*{1}}
\put(4.5,12.5){\circle*{1}}\put(4.5,13.5){\circle*{1}}
\put(4.5,14.5){\circle*{1}}\put(4.5,15.5){\circle*{1}}
\put(4.5,16.5){\circle*{1}}\put(4.5,17.5){\circle*{1}}
\put(4.5,18.5){\circle*{1}}\put(4.5,19.5){\circle*{1}}
\put(4.5,20.5){\circle*{1}}\put(5.5,0.5){\circle*{1}}
\put(5.5,1.5){\circle*{1}}\put(5.5,2.5){\circle*{1}}
\put(5.5,3.5){\circle*{1}}\put(5.5,4.5){\circle*{1}}
\put(5.5,5.5){\circle*{1}}\put(5.5,6.5){\circle*{1}}
\put(5.5,7.5){\circle*{1}}\put(5.5,8.5){\circle*{1}}
\put(5.5,9.5){\circle*{1}}\put(5.5,10.5){\circle*{1}}
\put(5.5,11.5){\circle*{1}}\put(5.5,12.5){\circle*{1}}
\put(5.5,13.5){\circle*{1}}\put(5.5,14.5){\circle*{1}}
\put(5.5,15.5){\circle*{1}}\put(5.5,16.5){\circle*{1}}
\put(5.5,17.5){\circle*{1}}\put(5.5,18.5){\circle*{1}}
\put(5.5,19.5){\circle*{1}}\put(6.5,1.5){\circle*{1}}
\put(6.5,7.5){\circle*{1}}\put(6.5,13.5){\circle*{1}}
\put(6.5,19.5){\circle*{1}}\put(7.5,1.5){\circle*{1}}
\put(7.5,7.5){\circle*{1}}\put(7.5,13.5){\circle*{1}}
\put(7.5,19.5){\circle*{1}}\put(8.5,1.5){\circle*{1}}
\put(8.5,7.5){\circle*{1}}\put(8.5,13.5){\circle*{1}}
\put(8.5,19.5){\circle*{1}}\put(9.5,1.5){\circle*{1}}
\put(9.5,7.5){\circle*{1}}\put(9.5,13.5){\circle*{1}}
\put(9.5,19.5){\circle*{1}}\put(10.5,1.5){\circle*{1}}
\put(10.5,7.5){\circle*{1}}\put(10.5,13.5){\circle*{1}}
\put(10.5,19.5){\circle*{1}}\put(10.5,20.5){\circle*{1}}
\put(10.5,21.5){\circle*{1}}\put(10.5,22.5){\circle*{1}}
\put(10.5,23.5){\circle*{1}}\put(11.5,1.5){\circle*{1}}
\put(11.5,7.5){\circle*{1}}\put(11.5,13.5){\circle*{1}}
\put(11.5,19.5){\circle*{1}}\put(11.5,21.5){\circle*{1}}
\put(11.5,22.5){\circle*{1}}\put(12.5,1.5){\circle*{1}}
\put(12.5,7.5){\circle*{1}}\put(12.5,13.5){\circle*{1}}
\put(12.5,19.5){\circle*{1}}\put(12.5,22.5){\circle*{1}}
\put(13.5,1.5){\circle*{1}}\put(13.5,7.5){\circle*{1}}
\put(13.5,13.5){\circle*{1}}\put(13.5,19.5){\circle*{1}}
\put(14.5,1.5){\circle*{1}}\put(14.5,7.5){\circle*{1}}
\put(14.5,13.5){\circle*{1}}\put(14.5,19.5){\circle*{1}}
\put(15.5,1.5){\circle*{1}}\put(15.5,7.5){\circle*{1}}
\put(15.5,13.5){\circle*{1}}\put(15.5,19.5){\circle*{1}}
\put(16.5,1.5){\circle*{1}}\put(16.5,7.5){\circle*{1}}
\put(16.5,13.5){\circle*{1}}\put(16.5,19.5){\circle*{1}}
\put(17.5,1.5){\circle*{1}}\put(17.5,7.5){\circle*{1}}
\put(17.5,13.5){\circle*{1}}\put(17.5,19.5){\circle*{1}}
\put(18.5,0.5){\circle*{1}}\put(18.5,1.5){\circle*{1}}
\put(18.5,2.5){\circle*{1}}\put(18.5,3.5){\circle*{1}}
\put(18.5,4.5){\circle*{1}}\put(18.5,5.5){\circle*{1}}
\put(18.5,6.5){\circle*{1}}\put(18.5,7.5){\circle*{1}}
\put(18.5,8.5){\circle*{1}}\put(18.5,9.5){\circle*{1}}
\put(18.5,10.5){\circle*{1}}\put(18.5,11.5){\circle*{1}}
\put(18.5,12.5){\circle*{1}}\put(18.5,13.5){\circle*{1}}
\put(18.5,14.5){\circle*{1}}\put(18.5,15.5){\circle*{1}}
\put(18.5,16.5){\circle*{1}}\put(18.5,17.5){\circle*{1}}
\put(18.5,18.5){\circle*{1}}\put(18.5,19.5){\circle*{1}}
\put(18.5,20.5){\circle*{1}}\put(19.5,0.5){\circle*{1}}
\put(19.5,1.5){\circle*{1}}\put(19.5,2.5){\circle*{1}}
\put(19.5,3.5){\circle*{1}}\put(19.5,4.5){\circle*{1}}
\put(19.5,5.5){\circle*{1}}\put(19.5,6.5){\circle*{1}}
\put(19.5,7.5){\circle*{1}}\put(19.5,8.5){\circle*{1}}
\put(19.5,9.5){\circle*{1}}\put(19.5,10.5){\circle*{1}}
\put(19.5,11.5){\circle*{1}}\put(19.5,12.5){\circle*{1}}
\put(19.5,13.5){\circle*{1}}\put(19.5,14.5){\circle*{1}}
\put(19.5,15.5){\circle*{1}}\put(19.5,16.5){\circle*{1}}
\put(19.5,17.5){\circle*{1}}\put(19.5,18.5){\circle*{1}}
\put(19.5,19.5){\circle*{1}}\put(19.5,20.5){\circle*{1}}
\put(20.5,19.5){\circle*{1}}
\end{picture}}
\end{picture}
\hspace{1cm}
\begin{picture}(250,28)
\thinlines
\put(0,0){\line(1,0){250}}
\put(38,0){%
\begin{picture}(22,26)(-2,-2)%Bitmap 2988
\put(0.5,0.5){\circle*{1}}\put(0.5,1.5){\circle*{1}}
\put(0.5,2.5){\circle*{1}}\put(0.5,3.5){\circle*{1}}
\put(0.5,4.5){\circle*{1}}\put(0.5,5.5){\circle*{1}}
\put(0.5,6.5){\circle*{1}}\put(0.5,7.5){\circle*{1}}
\put(0.5,8.5){\circle*{1}}\put(0.5,9.5){\circle*{1}}
\put(0.5,10.5){\circle*{1}}\put(0.5,11.5){\circle*{1}}
\put(1.5,0.5){\circle*{1}}\put(1.5,1.5){\circle*{1}}
\put(1.5,2.5){\circle*{1}}\put(1.5,3.5){\circle*{1}}
\put(1.5,4.5){\circle*{1}}\put(1.5,5.5){\circle*{1}}
\put(1.5,6.5){\circle*{1}}\put(1.5,7.5){\circle*{1}}
\put(1.5,8.5){\circle*{1}}\put(1.5,9.5){\circle*{1}}
\put(1.5,10.5){\circle*{1}}\put(2.5,2.5){\circle*{1}}
\put(2.5,10.5){\circle*{1}}\put(3.5,2.5){\circle*{1}}
\put(3.5,10.5){\circle*{1}}\put(4.5,2.5){\circle*{1}}
\put(4.5,10.5){\circle*{1}}\put(5.5,2.5){\circle*{1}}
\put(5.5,10.5){\circle*{1}}\put(6.5,2.5){\circle*{1}}
\put(6.5,10.5){\circle*{1}}\put(7.5,2.5){\circle*{1}}
\put(7.5,10.5){\circle*{1}}\put(7.5,11.5){\circle*{1}}
\put(7.5,12.5){\circle*{1}}\put(7.5,13.5){\circle*{1}}
\put(7.5,14.5){\circle*{1}}\put(7.5,15.5){\circle*{1}}
\put(7.5,16.5){\circle*{1}}\put(7.5,17.5){\circle*{1}}
\put(7.5,18.5){\circle*{1}}\put(7.5,19.5){\circle*{1}}
\put(7.5,20.5){\circle*{1}}\put(7.5,21.5){\circle*{1}}
\put(7.5,22.5){\circle*{1}}\put(7.5,23.5){\circle*{1}}
\put(8.5,2.5){\circle*{1}}\put(8.5,10.5){\circle*{1}}
\put(8.5,11.5){\circle*{1}}\put(8.5,12.5){\circle*{1}}
\put(8.5,13.5){\circle*{1}}\put(8.5,14.5){\circle*{1}}
\put(8.5,15.5){\circle*{1}}\put(8.5,16.5){\circle*{1}}
\put(8.5,17.5){\circle*{1}}\put(8.5,18.5){\circle*{1}}
\put(8.5,19.5){\circle*{1}}\put(8.5,20.5){\circle*{1}}
\put(8.5,21.5){\circle*{1}}\put(8.5,22.5){\circle*{1}}
\put(8.5,23.5){\circle*{1}}\put(9.5,2.5){\circle*{1}}
\put(9.5,10.5){\circle*{1}}\put(9.5,17.5){\circle*{1}}
\put(9.5,23.5){\circle*{1}}\put(10.5,2.5){\circle*{1}}
\put(10.5,10.5){\circle*{1}}\put(10.5,17.5){\circle*{1}}
\put(11.5,2.5){\circle*{1}}\put(11.5,10.5){\circle*{1}}
\put(11.5,17.5){\circle*{1}}\put(12.5,2.5){\circle*{1}}
\put(12.5,10.5){\circle*{1}}\put(12.5,17.5){\circle*{1}}
\put(13.5,2.5){\circle*{1}}\put(13.5,10.5){\circle*{1}}
\put(13.5,17.5){\circle*{1}}\put(14.5,0.5){\circle*{1}}
\put(14.5,1.5){\circle*{1}}\put(14.5,2.5){\circle*{1}}
\put(14.5,3.5){\circle*{1}}\put(14.5,4.5){\circle*{1}}
\put(14.5,5.5){\circle*{1}}\put(14.5,6.5){\circle*{1}}
\put(14.5,7.5){\circle*{1}}\put(14.5,8.5){\circle*{1}}
\put(14.5,9.5){\circle*{1}}\put(14.5,10.5){\circle*{1}}
\put(14.5,11.5){\circle*{1}}\put(14.5,17.5){\circle*{1}}
\put(15.5,0.5){\circle*{1}}\put(15.5,1.5){\circle*{1}}
\put(15.5,2.5){\circle*{1}}\put(15.5,3.5){\circle*{1}}
\put(15.5,4.5){\circle*{1}}\put(15.5,5.5){\circle*{1}}
\put(15.5,6.5){\circle*{1}}\put(15.5,7.5){\circle*{1}}
\put(15.5,8.5){\circle*{1}}\put(15.5,9.5){\circle*{1}}
\put(15.5,10.5){\circle*{1}}\put(15.5,11.5){\circle*{1}}
\put(15.5,17.5){\circle*{1}}\put(15.5,18.5){\circle*{1}}
\put(16.5,10.5){\circle*{1}}\put(16.5,17.5){\circle*{1}}
\put(16.5,18.5){\circle*{1}}\put(17.5,17.5){\circle*{1}}
\end{picture}}
\put(62,0){\usebox{\watashi}}
\put(92,0){%
\begin{picture}(21,26)(-2,-2)%Bitmap 3570
\put(0.5,0.5){\circle*{1}}\put(0.5,1.5){\circle*{1}}
\put(0.5,2.5){\circle*{1}}\put(0.5,3.5){\circle*{1}}
\put(0.5,4.5){\circle*{1}}\put(0.5,5.5){\circle*{1}}
\put(0.5,6.5){\circle*{1}}\put(0.5,7.5){\circle*{1}}
\put(0.5,8.5){\circle*{1}}\put(0.5,9.5){\circle*{1}}
\put(0.5,10.5){\circle*{1}}\put(0.5,11.5){\circle*{1}}
\put(0.5,12.5){\circle*{1}}\put(0.5,13.5){\circle*{1}}
\put(0.5,14.5){\circle*{1}}\put(0.5,15.5){\circle*{1}}
\put(0.5,16.5){\circle*{1}}\put(0.5,17.5){\circle*{1}}
\put(0.5,18.5){\circle*{1}}\put(0.5,19.5){\circle*{1}}
\put(0.5,20.5){\circle*{1}}\put(0.5,21.5){\circle*{1}}
\put(0.5,22.5){\circle*{1}}\put(1.5,0.5){\circle*{1}}
\put(1.5,1.5){\circle*{1}}\put(1.5,2.5){\circle*{1}}
\put(1.5,3.5){\circle*{1}}\put(1.5,4.5){\circle*{1}}
\put(1.5,5.5){\circle*{1}}\put(1.5,6.5){\circle*{1}}
\put(1.5,7.5){\circle*{1}}\put(1.5,8.5){\circle*{1}}
\put(1.5,9.5){\circle*{1}}\put(1.5,10.5){\circle*{1}}
\put(1.5,11.5){\circle*{1}}\put(1.5,12.5){\circle*{1}}
\put(1.5,13.5){\circle*{1}}\put(1.5,14.5){\circle*{1}}
\put(1.5,15.5){\circle*{1}}\put(1.5,16.5){\circle*{1}}
\put(1.5,17.5){\circle*{1}}\put(1.5,18.5){\circle*{1}}
\put(1.5,19.5){\circle*{1}}\put(1.5,20.5){\circle*{1}}
\put(1.5,21.5){\circle*{1}}\put(2.5,2.5){\circle*{1}}
\put(2.5,12.5){\circle*{1}}\put(2.5,21.5){\circle*{1}}
\put(3.5,2.5){\circle*{1}}\put(3.5,12.5){\circle*{1}}
\put(3.5,21.5){\circle*{1}}\put(4.5,2.5){\circle*{1}}
\put(4.5,12.5){\circle*{1}}\put(4.5,21.5){\circle*{1}}
\put(5.5,2.5){\circle*{1}}\put(5.5,12.5){\circle*{1}}
\put(5.5,21.5){\circle*{1}}\put(6.5,2.5){\circle*{1}}
\put(6.5,12.5){\circle*{1}}\put(6.5,21.5){\circle*{1}}
\put(7.5,2.5){\circle*{1}}\put(7.5,12.5){\circle*{1}}
\put(7.5,21.5){\circle*{1}}\put(8.5,2.5){\circle*{1}}
\put(8.5,12.5){\circle*{1}}\put(8.5,21.5){\circle*{1}}
\put(9.5,2.5){\circle*{1}}\put(9.5,12.5){\circle*{1}}
\put(9.5,21.5){\circle*{1}}\put(10.5,2.5){\circle*{1}}
\put(10.5,12.5){\circle*{1}}\put(10.5,21.5){\circle*{1}}
\put(11.5,2.5){\circle*{1}}\put(11.5,12.5){\circle*{1}}
\put(11.5,21.5){\circle*{1}}\put(12.5,2.5){\circle*{1}}
\put(12.5,12.5){\circle*{1}}\put(12.5,21.5){\circle*{1}}
\put(13.5,2.5){\circle*{1}}\put(13.5,12.5){\circle*{1}}
\put(13.5,21.5){\circle*{1}}\put(14.5,0.5){\circle*{1}}
\put(14.5,1.5){\circle*{1}}\put(14.5,2.5){\circle*{1}}
\put(14.5,3.5){\circle*{1}}\put(14.5,4.5){\circle*{1}}
\put(14.5,5.5){\circle*{1}}\put(14.5,6.5){\circle*{1}}
\put(14.5,7.5){\circle*{1}}\put(14.5,8.5){\circle*{1}}
\put(14.5,9.5){\circle*{1}}\put(14.5,10.5){\circle*{1}}
\put(14.5,11.5){\circle*{1}}\put(14.5,12.5){\circle*{1}}
\put(14.5,13.5){\circle*{1}}\put(14.5,14.5){\circle*{1}}
\put(14.5,15.5){\circle*{1}}\put(14.5,16.5){\circle*{1}}
\put(14.5,17.5){\circle*{1}}\put(14.5,18.5){\circle*{1}}
\put(14.5,19.5){\circle*{1}}\put(14.5,20.5){\circle*{1}}
\put(14.5,21.5){\circle*{1}}\put(14.5,22.5){\circle*{1}}
\put(15.5,0.5){\circle*{1}}\put(15.5,1.5){\circle*{1}}
\put(15.5,2.5){\circle*{1}}\put(15.5,3.5){\circle*{1}}
\put(15.5,4.5){\circle*{1}}\put(15.5,5.5){\circle*{1}}
\put(15.5,6.5){\circle*{1}}\put(15.5,7.5){\circle*{1}}
\put(15.5,8.5){\circle*{1}}\put(15.5,9.5){\circle*{1}}
\put(15.5,10.5){\circle*{1}}\put(15.5,11.5){\circle*{1}}
\put(15.5,12.5){\circle*{1}}\put(15.5,13.5){\circle*{1}}
\put(15.5,14.5){\circle*{1}}\put(15.5,15.5){\circle*{1}}
\put(15.5,16.5){\circle*{1}}\put(15.5,17.5){\circle*{1}}
\put(15.5,18.5){\circle*{1}}\put(15.5,19.5){\circle*{1}}
\put(15.5,20.5){\circle*{1}}\put(15.5,21.5){\circle*{1}}
\put(15.5,22.5){\circle*{1}}\put(16.5,21.5){\circle*{1}}
\end{picture}}
\put(115,0){\usebox{\watashi}}
\put(145,0){%
\begin{picture}(16,26)(-2,-2)%Bitmap 3994
\put(0.5,0.5){\circle*{1}}\put(0.5,1.5){\circle*{1}}
\put(0.5,2.5){\circle*{1}}\put(0.5,3.5){\circle*{1}}
\put(0.5,4.5){\circle*{1}}\put(0.5,5.5){\circle*{1}}
\put(0.5,6.5){\circle*{1}}\put(0.5,7.5){\circle*{1}}
\put(0.5,8.5){\circle*{1}}\put(0.5,9.5){\circle*{1}}
\put(0.5,10.5){\circle*{1}}\put(0.5,11.5){\circle*{1}}
\put(0.5,12.5){\circle*{1}}\put(0.5,13.5){\circle*{1}}
\put(0.5,14.5){\circle*{1}}\put(0.5,15.5){\circle*{1}}
\put(0.5,16.5){\circle*{1}}\put(0.5,17.5){\circle*{1}}
\put(0.5,18.5){\circle*{1}}\put(0.5,19.5){\circle*{1}}
\put(0.5,20.5){\circle*{1}}\put(0.5,21.5){\circle*{1}}
\put(0.5,22.5){\circle*{1}}\put(0.5,23.5){\circle*{1}}
\put(1.5,0.5){\circle*{1}}\put(1.5,1.5){\circle*{1}}
\put(1.5,2.5){\circle*{1}}\put(1.5,3.5){\circle*{1}}
\put(1.5,4.5){\circle*{1}}\put(1.5,5.5){\circle*{1}}
\put(1.5,6.5){\circle*{1}}\put(1.5,7.5){\circle*{1}}
\put(1.5,8.5){\circle*{1}}\put(1.5,9.5){\circle*{1}}
\put(1.5,10.5){\circle*{1}}\put(1.5,11.5){\circle*{1}}
\put(1.5,12.5){\circle*{1}}\put(1.5,13.5){\circle*{1}}
\put(1.5,14.5){\circle*{1}}\put(1.5,15.5){\circle*{1}}
\put(1.5,16.5){\circle*{1}}\put(1.5,17.5){\circle*{1}}
\put(1.5,18.5){\circle*{1}}\put(1.5,19.5){\circle*{1}}
\put(1.5,20.5){\circle*{1}}\put(1.5,21.5){\circle*{1}}
\put(1.5,22.5){\circle*{1}}\put(1.5,23.5){\circle*{1}}
\put(2.5,15.5){\circle*{1}}\put(2.5,23.5){\circle*{1}}
\put(3.5,15.5){\circle*{1}}\put(4.5,14.5){\circle*{1}}
\put(5.5,14.5){\circle*{1}}\put(6.5,13.5){\circle*{1}}
\put(7.5,12.5){\circle*{1}}\put(7.5,13.5){\circle*{1}}
\put(8.5,11.5){\circle*{1}}\put(8.5,12.5){\circle*{1}}
\put(9.5,10.5){\circle*{1}}\put(9.5,11.5){\circle*{1}}
\put(9.5,12.5){\circle*{1}}\put(10.5,9.5){\circle*{1}}
\put(10.5,10.5){\circle*{1}}\put(10.5,11.5){\circle*{1}}
\put(11.5,9.5){\circle*{1}}\put(11.5,10.5){\circle*{1}}
\end{picture}}
\put(163,0){\usebox{\watashi}}
\put(193,0){%
\begin{picture}(17,26)(-2,-2)%Bitmap 4645
\put(0.5,0.5){\circle*{1}}\put(0.5,1.5){\circle*{1}}
\put(0.5,2.5){\circle*{1}}\put(0.5,3.5){\circle*{1}}
\put(0.5,4.5){\circle*{1}}\put(0.5,5.5){\circle*{1}}
\put(0.5,6.5){\circle*{1}}\put(0.5,7.5){\circle*{1}}
\put(0.5,8.5){\circle*{1}}\put(0.5,9.5){\circle*{1}}
\put(0.5,10.5){\circle*{1}}\put(0.5,11.5){\circle*{1}}
\put(0.5,12.5){\circle*{1}}\put(0.5,13.5){\circle*{1}}
\put(0.5,14.5){\circle*{1}}\put(0.5,15.5){\circle*{1}}
\put(0.5,16.5){\circle*{1}}\put(0.5,17.5){\circle*{1}}
\put(0.5,18.5){\circle*{1}}\put(0.5,19.5){\circle*{1}}
\put(0.5,20.5){\circle*{1}}\put(0.5,21.5){\circle*{1}}
\put(0.5,22.5){\circle*{1}}\put(1.5,0.5){\circle*{1}}
\put(1.5,1.5){\circle*{1}}\put(1.5,2.5){\circle*{1}}
\put(1.5,3.5){\circle*{1}}\put(1.5,4.5){\circle*{1}}
\put(1.5,5.5){\circle*{1}}\put(1.5,6.5){\circle*{1}}
\put(1.5,7.5){\circle*{1}}\put(1.5,8.5){\circle*{1}}
\put(1.5,9.5){\circle*{1}}\put(1.5,10.5){\circle*{1}}
\put(1.5,11.5){\circle*{1}}\put(1.5,12.5){\circle*{1}}
\put(1.5,13.5){\circle*{1}}\put(1.5,14.5){\circle*{1}}
\put(1.5,15.5){\circle*{1}}\put(1.5,16.5){\circle*{1}}
\put(1.5,17.5){\circle*{1}}\put(1.5,18.5){\circle*{1}}
\put(1.5,19.5){\circle*{1}}\put(1.5,20.5){\circle*{1}}
\put(1.5,21.5){\circle*{1}}\put(2.5,21.5){\circle*{1}}
\put(3.5,21.5){\circle*{1}}\put(4.5,21.5){\circle*{1}}
\put(5.5,21.5){\circle*{1}}\put(6.5,7.5){\circle*{1}}
\put(6.5,21.5){\circle*{1}}\put(7.5,7.5){\circle*{1}}
\put(7.5,21.5){\circle*{1}}\put(8.5,6.5){\circle*{1}}
\put(8.5,7.5){\circle*{1}}\put(8.5,21.5){\circle*{1}}
\put(9.5,6.5){\circle*{1}}\put(9.5,7.5){\circle*{1}}
\put(9.5,21.5){\circle*{1}}\put(10.5,6.5){\circle*{1}}
\put(10.5,7.5){\circle*{1}}\put(10.5,8.5){\circle*{1}}
\put(10.5,9.5){\circle*{1}}\put(10.5,10.5){\circle*{1}}
\put(10.5,11.5){\circle*{1}}\put(10.5,12.5){\circle*{1}}
\put(10.5,13.5){\circle*{1}}\put(10.5,14.5){\circle*{1}}
\put(10.5,15.5){\circle*{1}}\put(10.5,16.5){\circle*{1}}
\put(10.5,17.5){\circle*{1}}\put(10.5,18.5){\circle*{1}}
\put(10.5,19.5){\circle*{1}}\put(10.5,20.5){\circle*{1}}
\put(10.5,21.5){\circle*{1}}\put(10.5,22.5){\circle*{1}}
\put(11.5,7.5){\circle*{1}}\put(11.5,8.5){\circle*{1}}
\put(11.5,9.5){\circle*{1}}\put(11.5,10.5){\circle*{1}}
\put(11.5,11.5){\circle*{1}}\put(11.5,12.5){\circle*{1}}
\put(11.5,13.5){\circle*{1}}\put(11.5,14.5){\circle*{1}}
\put(11.5,15.5){\circle*{1}}\put(11.5,16.5){\circle*{1}}
\put(11.5,17.5){\circle*{1}}\put(11.5,18.5){\circle*{1}}
\put(11.5,19.5){\circle*{1}}\put(11.5,20.5){\circle*{1}}
\put(11.5,21.5){\circle*{1}}\put(11.5,22.5){\circle*{1}}
\put(12.5,21.5){\circle*{1}}
\end{picture}}
\end{picture}
\sbox{\watashi}{}
\end{center}
The japanese characters on the left have a fixed width. The characters on the
right have a minimized width, just like ordinary english characters.
Personally, I find that minimized width is desirable when writing japanese
horizontally. Also note that although this is not visible in these two
examples, the japanese characters are as short as possible while respecting the
vertical relationship with their horizontal baseline.
Let us now consider vertical roman writing. If one was to simply reverse the
previous argument regarding roman characters and their horizontal baseline, one
would conclude that it is important to minimize the height of each roman
character. However, the width of each character would be unimportant. It is the
horizontal relationship between the roman character and the vertical baseline
that would appear crucial.
That reasoning could be correct if there was such a thing as vertical roman
writing, but it fails in the japanese case for two good reasons. First of all,
there is no vertical baseline available in \MFT. That implies that the concept
of an horizontal relationship between a japanese character and its vertical
baseline is undefined. The next best thing available to us is to use fixed
width japanese characters. In such a case, the sought horizontal relationship
is implied in the bitmap itself.
Secondly, some japanese characters can be constructed by piling up other
characters on top of one another. For example, consider the characters two,
one, and three:
\begin{center}
\setlength{\unitlength}{0.4pt}
\begin{picture}(30,94)(0,-10)
\thinlines
\put(0,-10){\line(0,1){104}}
\put(0,56){%
\begin{picture}(28,26)(-2,-2)%Bitmap 3561 ni
\put(0.5,2.5){\circle*{1}}\put(1.5,2.5){\circle*{1}}
\put(2.5,2.5){\circle*{1}}\put(3.5,2.5){\circle*{1}}
\put(3.5,20.5){\circle*{1}}\put(4.5,2.5){\circle*{1}}
\put(4.5,20.5){\circle*{1}}\put(5.5,2.5){\circle*{1}}
\put(5.5,20.5){\circle*{1}}\put(6.5,2.5){\circle*{1}}
\put(6.5,20.5){\circle*{1}}\put(7.5,2.5){\circle*{1}}
\put(7.5,20.5){\circle*{1}}\put(8.5,2.5){\circle*{1}}
\put(8.5,20.5){\circle*{1}}\put(9.5,2.5){\circle*{1}}
\put(9.5,20.5){\circle*{1}}\put(10.5,2.5){\circle*{1}}
\put(10.5,20.5){\circle*{1}}\put(11.5,2.5){\circle*{1}}
\put(11.5,20.5){\circle*{1}}\put(12.5,2.5){\circle*{1}}
\put(12.5,20.5){\circle*{1}}\put(13.5,2.5){\circle*{1}}
\put(13.5,20.5){\circle*{1}}\put(14.5,2.5){\circle*{1}}
\put(14.5,20.5){\circle*{1}}\put(15.5,2.5){\circle*{1}}
\put(15.5,20.5){\circle*{1}}\put(16.5,2.5){\circle*{1}}
\put(16.5,20.5){\circle*{1}}\put(17.5,2.5){\circle*{1}}
\put(17.5,20.5){\circle*{1}}\put(18.5,2.5){\circle*{1}}
\put(18.5,20.5){\circle*{1}}\put(18.5,21.5){\circle*{1}}
\put(19.5,2.5){\circle*{1}}\put(19.5,20.5){\circle*{1}}
\put(19.5,21.5){\circle*{1}}\put(20.5,2.5){\circle*{1}}
\put(20.5,20.5){\circle*{1}}\put(21.5,2.5){\circle*{1}}
\put(21.5,3.5){\circle*{1}}\put(22.5,2.5){\circle*{1}}
\put(22.5,3.5){\circle*{1}}\put(23.5,2.5){\circle*{1}}
\end{picture}}
\put(0,28){%
\begin{picture}(28,26)(-2,-2)%Bitmap 1486 ichi
\put(0.5,12.5){\circle*{1}}\put(1.5,12.5){\circle*{1}}
\put(2.5,12.5){\circle*{1}}\put(3.5,12.5){\circle*{1}}
\put(4.5,12.5){\circle*{1}}\put(5.5,12.5){\circle*{1}}
\put(6.5,12.5){\circle*{1}}\put(7.5,12.5){\circle*{1}}
\put(8.5,12.5){\circle*{1}}\put(9.5,12.5){\circle*{1}}
\put(10.5,12.5){\circle*{1}}\put(11.5,12.5){\circle*{1}}
\put(12.5,12.5){\circle*{1}}\put(13.5,12.5){\circle*{1}}
\put(14.5,12.5){\circle*{1}}\put(15.5,12.5){\circle*{1}}
\put(16.5,12.5){\circle*{1}}\put(17.5,12.5){\circle*{1}}
\put(18.5,12.5){\circle*{1}}\put(19.5,12.5){\circle*{1}}
\put(20.5,12.5){\circle*{1}}\put(20.5,13.5){\circle*{1}}
\put(21.5,12.5){\circle*{1}}\put(21.5,13.5){\circle*{1}}
\put(21.5,14.5){\circle*{1}}\put(22.5,12.5){\circle*{1}}
\put(22.5,13.5){\circle*{1}}\put(23.5,12.5){\circle*{1}}
\end{picture}}
\put(0,0){%
\begin{picture}(28,26)(-2,-2)%Bitmap 2460 san
\put(0.5,2.5){\circle*{1}}\put(1.5,2.5){\circle*{1}}
\put(2.5,2.5){\circle*{1}}\put(2.5,21.5){\circle*{1}}
\put(3.5,2.5){\circle*{1}}\put(3.5,21.5){\circle*{1}}
\put(4.5,2.5){\circle*{1}}\put(4.5,12.5){\circle*{1}}
\put(4.5,21.5){\circle*{1}}\put(5.5,2.5){\circle*{1}}
\put(5.5,12.5){\circle*{1}}\put(5.5,21.5){\circle*{1}}
\put(6.5,2.5){\circle*{1}}\put(6.5,12.5){\circle*{1}}
\put(6.5,21.5){\circle*{1}}\put(7.5,2.5){\circle*{1}}
\put(7.5,12.5){\circle*{1}}\put(7.5,21.5){\circle*{1}}
\put(8.5,2.5){\circle*{1}}\put(8.5,12.5){\circle*{1}}
\put(8.5,21.5){\circle*{1}}\put(9.5,2.5){\circle*{1}}
\put(9.5,12.5){\circle*{1}}\put(9.5,21.5){\circle*{1}}
\put(10.5,2.5){\circle*{1}}\put(10.5,12.5){\circle*{1}}
\put(10.5,21.5){\circle*{1}}\put(11.5,2.5){\circle*{1}}
\put(11.5,12.5){\circle*{1}}\put(11.5,21.5){\circle*{1}}
\put(12.5,2.5){\circle*{1}}\put(12.5,12.5){\circle*{1}}
\put(12.5,21.5){\circle*{1}}\put(13.5,2.5){\circle*{1}}
\put(13.5,12.5){\circle*{1}}\put(13.5,21.5){\circle*{1}}
\put(14.5,2.5){\circle*{1}}\put(14.5,12.5){\circle*{1}}
\put(14.5,21.5){\circle*{1}}\put(15.5,2.5){\circle*{1}}
\put(15.5,12.5){\circle*{1}}\put(15.5,21.5){\circle*{1}}
\put(16.5,2.5){\circle*{1}}\put(16.5,12.5){\circle*{1}}
\put(16.5,21.5){\circle*{1}}\put(17.5,2.5){\circle*{1}}
\put(17.5,12.5){\circle*{1}}\put(17.5,13.5){\circle*{1}}
\put(17.5,21.5){\circle*{1}}\put(18.5,2.5){\circle*{1}}
\put(18.5,12.5){\circle*{1}}\put(18.5,13.5){\circle*{1}}
\put(18.5,21.5){\circle*{1}}\put(19.5,2.5){\circle*{1}}
\put(19.5,12.5){\circle*{1}}\put(19.5,21.5){\circle*{1}}
\put(19.5,22.5){\circle*{1}}\put(20.5,2.5){\circle*{1}}
\put(20.5,21.5){\circle*{1}}\put(20.5,22.5){\circle*{1}}
\put(21.5,2.5){\circle*{1}}\put(21.5,3.5){\circle*{1}}
\put(21.5,21.5){\circle*{1}}\put(22.5,2.5){\circle*{1}}
\put(22.5,3.5){\circle*{1}}\put(23.5,2.5){\circle*{1}}
\end{picture}}
\end{picture}
\hspace{1cm}
\begin{picture}(30,94)(0,-10)
\thinlines
\put(0,-10){\line(0,1){104}}
\put(0,45.5){%
\begin{picture}(28,23)(-2,0)%Bitmap 3561 ni
\put(0.5,2.5){\circle*{1}}\put(1.5,2.5){\circle*{1}}
\put(2.5,2.5){\circle*{1}}\put(3.5,2.5){\circle*{1}}
\put(3.5,20.5){\circle*{1}}\put(4.5,2.5){\circle*{1}}
\put(4.5,20.5){\circle*{1}}\put(5.5,2.5){\circle*{1}}
\put(5.5,20.5){\circle*{1}}\put(6.5,2.5){\circle*{1}}
\put(6.5,20.5){\circle*{1}}\put(7.5,2.5){\circle*{1}}
\put(7.5,20.5){\circle*{1}}\put(8.5,2.5){\circle*{1}}
\put(8.5,20.5){\circle*{1}}\put(9.5,2.5){\circle*{1}}
\put(9.5,20.5){\circle*{1}}\put(10.5,2.5){\circle*{1}}
\put(10.5,20.5){\circle*{1}}\put(11.5,2.5){\circle*{1}}
\put(11.5,20.5){\circle*{1}}\put(12.5,2.5){\circle*{1}}
\put(12.5,20.5){\circle*{1}}\put(13.5,2.5){\circle*{1}}
\put(13.5,20.5){\circle*{1}}\put(14.5,2.5){\circle*{1}}
\put(14.5,20.5){\circle*{1}}\put(15.5,2.5){\circle*{1}}
\put(15.5,20.5){\circle*{1}}\put(16.5,2.5){\circle*{1}}
\put(16.5,20.5){\circle*{1}}\put(17.5,2.5){\circle*{1}}
\put(17.5,20.5){\circle*{1}}\put(18.5,2.5){\circle*{1}}
\put(18.5,20.5){\circle*{1}}\put(18.5,21.5){\circle*{1}}
\put(19.5,2.5){\circle*{1}}\put(19.5,20.5){\circle*{1}}
\put(19.5,21.5){\circle*{1}}\put(20.5,2.5){\circle*{1}}
\put(20.5,20.5){\circle*{1}}\put(21.5,2.5){\circle*{1}}
\put(21.5,3.5){\circle*{1}}\put(22.5,2.5){\circle*{1}}
\put(22.5,3.5){\circle*{1}}\put(23.5,2.5){\circle*{1}}
\end{picture}}
\put(0,39.5){%
\begin{picture}(28,16)(-2,10)%Bitmap 1486 ichi
\put(0.5,12.5){\circle*{1}}\put(1.5,12.5){\circle*{1}}
\put(2.5,12.5){\circle*{1}}\put(3.5,12.5){\circle*{1}}
\put(4.5,12.5){\circle*{1}}\put(5.5,12.5){\circle*{1}}
\put(6.5,12.5){\circle*{1}}\put(7.5,12.5){\circle*{1}}
\put(8.5,12.5){\circle*{1}}\put(9.5,12.5){\circle*{1}}
\put(10.5,12.5){\circle*{1}}\put(11.5,12.5){\circle*{1}}
\put(12.5,12.5){\circle*{1}}\put(13.5,12.5){\circle*{1}}
\put(14.5,12.5){\circle*{1}}\put(15.5,12.5){\circle*{1}}
\put(16.5,12.5){\circle*{1}}\put(17.5,12.5){\circle*{1}}
\put(18.5,12.5){\circle*{1}}\put(19.5,12.5){\circle*{1}}
\put(20.5,12.5){\circle*{1}}\put(20.5,13.5){\circle*{1}}
\put(21.5,12.5){\circle*{1}}\put(21.5,13.5){\circle*{1}}
\put(21.5,14.5){\circle*{1}}\put(22.5,12.5){\circle*{1}}
\put(22.5,13.5){\circle*{1}}\put(23.5,12.5){\circle*{1}}
\end{picture}}
\put(0,15.5){%
\begin{picture}(28,24)(-2,0)%Bitmap 2460 san
\put(0.5,2.5){\circle*{1}}\put(1.5,2.5){\circle*{1}}
\put(2.5,2.5){\circle*{1}}\put(2.5,21.5){\circle*{1}}
\put(3.5,2.5){\circle*{1}}\put(3.5,21.5){\circle*{1}}
\put(4.5,2.5){\circle*{1}}\put(4.5,12.5){\circle*{1}}
\put(4.5,21.5){\circle*{1}}\put(5.5,2.5){\circle*{1}}
\put(5.5,12.5){\circle*{1}}\put(5.5,21.5){\circle*{1}}
\put(6.5,2.5){\circle*{1}}\put(6.5,12.5){\circle*{1}}
\put(6.5,21.5){\circle*{1}}\put(7.5,2.5){\circle*{1}}
\put(7.5,12.5){\circle*{1}}\put(7.5,21.5){\circle*{1}}
\put(8.5,2.5){\circle*{1}}\put(8.5,12.5){\circle*{1}}
\put(8.5,21.5){\circle*{1}}\put(9.5,2.5){\circle*{1}}
\put(9.5,12.5){\circle*{1}}\put(9.5,21.5){\circle*{1}}
\put(10.5,2.5){\circle*{1}}\put(10.5,12.5){\circle*{1}}
\put(10.5,21.5){\circle*{1}}\put(11.5,2.5){\circle*{1}}
\put(11.5,12.5){\circle*{1}}\put(11.5,21.5){\circle*{1}}
\put(12.5,2.5){\circle*{1}}\put(12.5,12.5){\circle*{1}}
\put(12.5,21.5){\circle*{1}}\put(13.5,2.5){\circle*{1}}
\put(13.5,12.5){\circle*{1}}\put(13.5,21.5){\circle*{1}}
\put(14.5,2.5){\circle*{1}}\put(14.5,12.5){\circle*{1}}
\put(14.5,21.5){\circle*{1}}\put(15.5,2.5){\circle*{1}}
\put(15.5,12.5){\circle*{1}}\put(15.5,21.5){\circle*{1}}
\put(16.5,2.5){\circle*{1}}\put(16.5,12.5){\circle*{1}}
\put(16.5,21.5){\circle*{1}}\put(17.5,2.5){\circle*{1}}
\put(17.5,12.5){\circle*{1}}\put(17.5,13.5){\circle*{1}}
\put(17.5,21.5){\circle*{1}}\put(18.5,2.5){\circle*{1}}
\put(18.5,12.5){\circle*{1}}\put(18.5,13.5){\circle*{1}}
\put(18.5,21.5){\circle*{1}}\put(19.5,2.5){\circle*{1}}
\put(19.5,12.5){\circle*{1}}\put(19.5,21.5){\circle*{1}}
\put(19.5,22.5){\circle*{1}}\put(20.5,2.5){\circle*{1}}
\put(20.5,21.5){\circle*{1}}\put(20.5,22.5){\circle*{1}}
\put(21.5,2.5){\circle*{1}}\put(21.5,3.5){\circle*{1}}
\put(21.5,21.5){\circle*{1}}\put(22.5,2.5){\circle*{1}}
\put(22.5,3.5){\circle*{1}}\put(23.5,2.5){\circle*{1}}
\end{picture}}
\end{picture}
\end{center}
The japanese characters on the right are harder to read than the ones on the
left. This problem is partly alleviated if one uses vertically, characters with
minimized height that have been created for horizontal use. As discussed
before, the vertical distance between such characters and their horizontal
baseline is respected. This space could occasionally act as breathing space if
such horizontal characters were to be used vertically. But this is nevertheless
not satisfactory since an incomplete and unnatural solution. The only way to
avoid this problem altogether is to use fixed height characters when writing
japanese vertically, just as was done in the left column.
The conclusion seems clear. If you intend to use your \JemTeX\ fonts vertically
with some vertical writing style unknown to me, you should definitely create
fixed width and fixed height fonts. This is the only natural choice available.
If you will use your fonts only horizontally, then you probably want minimized
width fonts. Personally, I also minimized their height since the resulting
fonts are slightly smaller in size.
\label{positioning}
The second topic I would like to discuss here is relevant primarily for
horizontal writing. Given intermixed roman and japanese characters, how should
they relate to one another. More precisely, how tall should japanese characters
be with respect to capital roman ones, and what vertical relationship should
they have with their horizontal baseline.
It is a fact that most japanese characters are far more complex than any given
roman one. Therefore, japanese character should be relatively big. On the other
hand, tall centered japanese characters will lie lower on the horizontal
baseline than capital roman characters do, and will extend vertically more than
capital roman ones do. Consequently, the reader's eyes might have to go up and
down as they look over the text horizontally. A compromise is clearly called
for.
The first writing style considered here will be referred to as a {\em
dictionary\/} style since usually used in japanese dictionaries. In this style,
japanese characters are substantially taller than capital roman ones. This
makes it possible to use small japanese characters along with even smaller
roman ones to save space while maintaining readability. The japanese characters
also lie quite low on the horizontal baseline and extend vertically exactly the
same as capital roman characters do. Take a close look at your favorite
japanese dictionary.
I will refer to a more conventional japanese font as a {\em standard\/} style.
In this one, the japanese characters are still taller than capital roman ones,
but by a smaller amount than before. The japanese characters lie a little bit
lower on the horizontal baseline than capital roman characters do, and also
extend a little bit more vertically than capital roman ones do. They are
vertically centered as well as possible with respect to capital roman letter.
Many users of \JemTeX\ requested such a font style.
Here again, you will have to decide which style you prefer. In the first two
releases of \JemTeX, I used my japanese dictionaries to derive ideal font
characteristics. Since then, numerous people taught me that dictionary fonts
are quite specialized. Chances are you will want to use the standard style.
Personally, I am now permanently switching to it.
\subsection{The {\tt JIS2MF} Code Generator}
\label{thejis2mfcodegenerator}
Given a bitmap, my program \verb"JIS2MF" can construct an equivalent continuous
character and generate \MFT\ code for it. The \MFT\ program can then use this
code to generate a standard \TeX\ font. You have been supplied with the source
and the compressed compiled version of this Pascal program. Note that the file
\verb"JIS24" should be available in the current directory to run \verb"JIS2MF".
This fairly big file contains all the bitmaps making up the JIS~24 dot font.
The first practical problem is to decide on font names and their content. Not
everybody is running newer versions of \TeX\ and its drivers, allowing for
256~characters in a font. This includes me! Therefore, I put only
128~characters in my fonts. Unfortunately, this implies that I cannot use the
same scheme as J\TeX\ since the latter uses 256~characters per font. However, I
keep my new standard simple by organizing characters sequentially. I also leave
character~0 of the first font empty so that character~$x$ of the first font
corresponds to bitmap~$x$ of the JIS~24 dot font.
\TeX\ does not allow numbers in font names. Therefore, the names \verb"kanji00"
all the way to \verb"kanji60" are not possible. Table~\ref{thejemtexfonts}
lists the names I am using.
\begin{table}[htb]
\begin{center}
\begin{footnotesize}
\begin{tabular}{cccccccc}
\verb"kanjiaa" & \verb"kanjiab" & \verb"kanjiac" & \verb"kanjiad" &
\verb"kanjiae" & \verb"kanjiaf" & \verb"kanjiag" & \verb"kanjiah" \\
$\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ &
$\vdots$ & $\vdots$ & $\vdots$ & $\vdots$ \\
\verb"kanjiga" & \verb"kanjigb" & \verb"kanjigc" & \verb"kanjigd" &
\verb"kanjige" & \verb"kanjigf" & \verb"kanjigg" & \verb"kanjigh" \\
\verb"kanjiha" & \verb"kanjihb" & \verb"kanjihc" & \verb"kanjihd" &
\verb"kanjihe"
\end{tabular}
\end{footnotesize}
\end{center}
\caption{The \JemTeX\ Fonts.}
\label{thejemtexfonts}
\end{table}
\begin{table}[htb]
\begin{center}
\begin{minipage}{\textwidth}
\begin{small}
\begin{tabbing}
\verb"kanjiaa": Beginning of common english and japanese characters. \\
\verb"kanjiae": Most foreign characters. \\
\verb"kanjiaf": Beginning of most extended characters. \\
\verb"kanjiba": First of three empty fonts. \\
\verb"kanjibd": Beginning of level~1 kanjis. \\
\verb"kanjiec": Transition between level~1 and level~2 kanjis. \\
\verb"kanjihe": End of level~2 kanjis.
\end{tabbing}
\end{small}
\end{minipage}
\end{center}
\caption{Description of the \JemTeX\ Fonts.}
\label{descriptionofthejemtexfonts}
\end{table}
Several users complained about the time necessary to generate these fonts,
especially on the original 4.77~MHz IBM-PC. To help them decide which \JemTeX\
fonts they are likely to need, Table~\ref{descriptionofthejemtexfonts} contains
a brief description of all of them. I found through daily use that I almost
never use level~2 fonts. However, a typical 4~page document uses every level~1
font.
The last remaining preliminary detail is the question of bitmap numbering. The
bitmaps in \verb"JIS24" are numbered consecutively from~1 to~7806. The first
bitmap is empty, since it is the japanese space character. Many other
characters in the \JemTeX\ extended JIS~24 dot font are also left empty.
\verb"JIS2MF" ignores such characters altogether and will leave an undefined
character when it encounters one. This can be quite handy for somebody wishing
to create fonts using some other standard, like J\TeX. Suppose you wish to
leave some characters undefined in the font you are currently building. By
specifying bitmap~1 at the right places, the corresponding characters will be
left undefined.
My utility \verb"JIS2MF" requires the following information to operate:
\begin{description}
\item[Font Name:] The name of the font you are creating. \verb"JIS2MF" will
add for you the extension \verb".mf", so do not specify it.
The program also acts differently depending on whether or
not the font name you supply is a \JemTeX\ font name, like
\verb"kanjidf".
\item[Writing Style:] The characteristics of your font, essentially fixed
versus proportional dimensions and dictionary versus
standard positioning of the japanese characters.
\item[Bitmap Numbers:] The number of all the bitmaps making up the current
font. Specifying bitmap~0 terminates the process.
\end{description}
\begin{table}[htb]
\begin{center}
\begin{tabular}{l|cccc}
{\tt JIS2MF} & Command Line & Font & Writing & Bitmap \\
Mode & Parameters & Name & Style & Numbers \\
\hline
Manual & $\times$ & $\surd$ & $\surd$ & $\surd$ \\
Semi-Automatic & $\surd$ & (other) & Optional & $\surd$ \\
Automatic & $\surd$ & (\JemTeX) & Optional & $\times$ \\
Batch & $\surd$ & $\times$ & Optional & $\times$
\end{tabular}
\end{center}
\caption{The {\tt JIS2MF} Modes.}
\label{thejis2mfmodes}
\end{table}
How much and what information you must supply depends on which mode
\verb"JIS2MF" is in when you run it. Table~\ref{thejis2mfmodes} shows all the
modes currently available.
If you simply start \verb"JIS2MF" without any command line information, it will
run in manual mode where you must answer questions interactively throughout the
operation. In Table~\ref{thejis2mfmodes}, a $\surd$ indicates information that
will be required of you interactively. A $\times$ indicates information
irrelevant, or that you will not be asked for interactively.
The other three more advanced modes can only be accessed by specifying some
additional command line information. First, you can specify on the command line
the name of the font to be built. For example, here is how I would generate the
first \JemTeX\ font:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
JIS2MF kanjiaa
\end{verbatim}
\end{quote}
You can also add to such a command some \verb"JIS2MF" parameters. These always
begin with a \verb"/" or a \verb"-", and any combination or small and capital
letters is acceptable.
For the last three modes listed in Table~\ref{thejis2mfmodes}, proportional
width, proportional height, and standard positioning are assumed as default
writing styles. However, you may override or confirm any of these default
values with the appropriate command line parameter. The recognized ones are
listed in Tables~\ref{widthparameters}, \ref{heightparameters},
and~\ref{positioningparameters}.
\vspace*{\fill}
\begin{table}[htb]
\begin{center}
\begin{tabular}{ll}
\mbox{$\left.\parbox{4.6cm}{%
\verb"/FixedWidth" \\
\verb"/FixedX" \\
\verb"/NoProportionalWidth" \\
\verb"/NoProportionalX"}\right\}$} & Fixed width. \\[8mm]
\mbox{$\left.\parbox{4.6cm}{%
\verb"/NoFixedWidth" \\
\verb"/NoFixedX" \\
\verb"/ProportionalWidth" \\
\verb"/ProportionalX"}\right\}$} & Minimized width.
\end{tabular}
\end{center}
\caption{Width Parameters.}
\label{widthparameters}
\end{table}
\vspace*{\fill}
\newpage %improve a bad page break
\begin{table}[htb]
\begin{center}
\begin{tabular}{ll}
\mbox{$\left.\parbox{4.6cm}{%
\verb"/FixedHeight" \\
\verb"/FixedY" \\
\verb"/NoProportionalHeight" \\
\verb"/NoProportionalY"}\right\}$} & Fixed height. \\[8mm]
\mbox{$\left.\parbox{4.6cm}{%
\verb"/NoFixedHeight" \\
\verb"/NoFixedY" \\
\verb"/ProportionalHeight" \\
\verb"/ProportionalY"}\right\}$} & Minimized height.
\end{tabular}
\end{center}
\caption{Height Parameters.}
\label{heightparameters}
\begin{center}
\begin{tabular}{ll}
\verb"/Standard" & Standard positioning. \\
\verb"/Dictionary" & Dictionary positioning.
\end{tabular}
\end{center}
\caption{Positioning Parameters.}
\label{positioningparameters}
\end{table}
Here is how I would generate a \JemTeX\ font to be used vertically:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
JIS2MF kanjiaa /FixedWidth /FixedHeight
\end{verbatim}
\end{quote}
In the last two examples, since the font names specified are \JemTeX\ font
names, \verb"JIS2MF" supplies all the bitmap numbers for you; that's the
automatic mode. If the font name is not a \JemTeX\ one, then you are asked
interactively for the bitmap numbers; that's the semi-automatic mode. If you
plan on using a lot \verb"JIS2MF" semi-automatically, you may find piping
advantageous.
\label{batch}
The remaining mode is the batch mode. As its name implies, it is designed for
people using batch files. To trigger this mode, use the \verb"/batch" command
line parameter. In this mode, \verb"JIS2MF" looks in the current directory to
determine the latest \JemTeX\ font generated. It then generates the next one,
if possible.
There are two ways of using this feature. The simplest one is to generate the
\MFT\ code for all the \JemTeX\ fonts. To do so, create and execute the
following \verb"SIMPLE.BAT" batch file:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
JIS2MF /NoFixedWidth /NoFixedHeight /Standard /Batch
IF NOT ERRORLEVEL 1 SIMPLE
\end{verbatim}
\end{quote}
In this example, the code for the font \verb"kanjiaa" is first created. If all
went well, \verb"SIMPLE" executes again. It finds the file \verb"kanjiaa.mf"
in the current directory and therefore generates \verb"kanjiab.mf". Eventually,
the code for the font \verb"kanjihe" will be produced. When called once more,
\verb"JIS2MF" realizes that there is no such thing as a \JemTeX\ font
\verb"kanjihf" and stops with an error. The current batch file \verb"SIMPLE"
then terminates.
Although this procedure is correct, it also requires 36~Mb of disk space! To
avoid this, I use a more involved procedure. Here is the batch file
\verb"COMPLEX.BAT":
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
JIS2MF /NoFixedWidth /NoFixedHeight /Standard /Batch
IF ERRORLEVEL 1 GOTO TERMINATE
FOR %%1 IN (kanji??.mf) DO CALL METAFONT %%1
ERASE kanji??.mf
COMPLEX
:TERMINATE
\end{verbatim}
\end{quote}
As in the previous example, \verb"JIS2MF" first creates the file
\verb"kanjiaa.mf". The batch file \verb"METAFONT.BAT" is then called with the
parameter \verb"kanjiaa.mf". \MFT\ is to be discussed in
Subsection~\ref{runningmetafont}, but suffice to say that the files
\verb"kanjiaa.tfm" and \verb"kanjiaa.pk" are created by the subroutine
\verb"METAFONT". To save disk space, the file \verb"kanjiaa.mf" is then
deleted. Finally, this cycle starts all over again. This procedure works fine
because \verb"JIS2MF" looks for \verb"*.mf" {\em and\/} \verb"*.tfm" files when
trying to decide which font should be handled next.
\subsection{Running METAFONT}
\label{runningmetafont}
The \MFT\ program comes in two versions; a small one with a 64~Kb work space,
and a big one with a 256~Kb work space. Although the big version is more
capable, the small one is preferred whenever possible since it runs faster.
Here is a list of the \emTeX\ files necessary for the small 80286 version:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
MF EXE 197840 8-04-90 10:29p
MF POO 23028 8-04-90 9:42p
CM BAS 107412 9-19-90 11:13a
\end{verbatim}
\end{quote}
\newpage %improve a bad page break
The files for the big 80286 version are:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
MF EXE 238996 8-04-90 11:15p
MF POO 23028 8-04-90 10:32p
CM BAS 215128 9-19-90 11:13a
\end{verbatim}
\end{quote}
The program to compress the forthcoming fonts is:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
GFTOPK EXE 52825 9-15-90 1:13a
\end{verbatim}
\end{quote}
Finally, you also need a small file, describing the characteristics of the
device for which the fonts are intended. I use the file \verb"epsonfx.mf",
which is given below. Several such files are included in the file
\verb"local.mf" supplied with \emTeX, and there are small libraries of them in
\TeX\ circles.
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
mode_def epsonfx = % Epson FX-80 (240x216)
proofing:=0; % no, we're not making proofs
fontmaking:=1; % yes, we are making a font
tracingtitles:=0; % no, don't show titles in the log
pixels_per_inch:=240; % 240 dots/inch horizontally
blacker:=0; % don't make the pens any blacker
fillin:=0; % and don't compensate for fillin
o_correction:=.2; % but suppress most overshoots
aspect_ratio:=9/10; % 216 dots/inch vertically
enddef;
\end{verbatim}
\end{quote}
Font sizes are measured in magsteps. Typical magsteps are~$0.0$, $0.5$, $1.0$,
$2.0$, $3.0$, $4.0$, and~$5.0$. I find that most kanjis look acceptable on my
\mbox{9-pin} printer starting at magstep~$2.0$, and all kanjis are acceptable
starting at magstep~$3.0$. Hiraganas and katakanas are fairly simple
characters, and they look good at any magsteps. Table~\ref{12ptfontsizes} on
page~\pageref{12ptfontsizes} lists common font sizes.
\label{mftproof}
You can run big \MFT\ in proof mode where each character is displayed
graphically, but no font useful for us is created. The command I use is:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
MF &cm kanjiaa >NUL:
\end{verbatim}
\end{quote}
\newpage %improve a bad page break
\label{mftstandard}
You can run small \MFT\ in standard mode, which will generate usable fonts.
Here are the commands to create \verb"kanjiaa.tfm" and \verb"kanjiaa.pk":
\begin{quote}
\begin{small}%Don't put spaces after the next line!
\begin{verbatim}
MF &cm \mode:=epsonfx; \mag:=magstep(0.0); \input kanjiaa.mf
GFTOPK kanjiaa.240
\end{verbatim}
\end{small}
\end{quote}
The file name extension \verb".240" refers to the resolution of my printer,
resolution specified in the file \verb"epsonfx.mf". It may be different in your
case. Finally, note that this extension also changes with the magstep used. For
magstep~$5.0$, it becomes in my case $240 \times 1.2^{5.0} \approx 597$.
Here is my batch file \verb"METAFONT.BAT":
\begin{quote}
\begin{small}%Don't put spaces after the next line!
\begin{verbatim}
MF &cm \mode:=epsonfx; \mag:=magstep(5.0); \input %1
FOR %%1 IN (kanji??.597) DO GFTOPK %%1
ERASE kanji??.597
ERASE kanji??.log
\end{verbatim}
\end{small}
\end{quote}
\subsection{The METAFONT Code}
\label{themetafontcode}
In this subsection, I will briefly go over the \MFT\ code produced by my
program for a typical standard style font. This code can be crudely divided
into four parts:
\begin{itemize}
\item Initial Header.
\item Macro Definitions.
\item Character Definitions.
\item Final Header.
\end{itemize}
The header begins with the following command requesting memory usage statistics
in the \verb".log" file produced along with each font by \MFT:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
tracingstats:=1;
\end{verbatim}
\end{quote}
In proof mode, \MFT\ displays the characters in graphics mode provided it knows
the resolution of your device. I use the following, which you may decide to
change according to your hardware:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
screen_cols:=640; %VGA
screen_rows:=480; %VGA
\end{verbatim}
\end{quote}
The font design size, a fundamental unit of measurement, and character
positioning are then supplied. I use the following for standard \JemTeX\ fonts:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
font_size 10pt#;
u#:=12.7/36pt#;
body_height#:=23.25u#;
desc_depth#:=4.75u#;
\end{verbatim}
\end{quote}
Each underlying bitmap is $24u$~by~$24u$, and an empty border of $2u$ is left
around every japanese characters. In a standard style, each character can
extend vertically potentially by as much as $23.25u$ above its horizontal
baseline, and $4.75u$ below it, for a total of $28u$. Note that these are the
biggest values that can occur. In practice, the actual values are supplied for
each character when they are defined. For a fixed height font, the actual
values are always equal to these extreme values. Finally, the width is handled
differently by \MFT\ since only the actual width needs to be specified for each
character.
At this point, a whole series of parameters is necessary for the Computer
Modern base. The minimum set of them is set to~\verb"0pt" whenever possible. I
solve the few occurring overflows by setting the right parameters
to~\verb"1pt". None of these parameters appears useful since my japanese
characters use only very primitive \MFT\ operators. But \MFT\ insists on all
its parameters to be set anyway.
\MFT\ is then initialized with:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
mode_setup;
font_setup;
\end{verbatim}
\end{quote}
The macros to be used in drawing the characters follow. Each dot making up the
current bitmap lies in a square which I refer to by its lower left $z=(x,y)$
coordinates. I declare that variable $z$ with:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
pair z;
\end{verbatim}
\end{quote}
A number of macros to draw squares, triangles, reverse triangles, and quarter
circles are then included. All these have only one parameter; $z$. They are
illustrated in Figures~\ref{shortpatches} and~\ref{longpatches}.
\newpage %improve a bad page break
\begin{figure}[htb]
\begin{center}
\setlength{\unitlength}{0.38pt}
\begin{picture}(900,900)
\put(0,720){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,90){\framebox(90,90){}}
\put(0,90){\makebox(90,90){sul}}
\end{picture}}
\put(240,720){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,90){\framebox(90,90){}}
\put(90,90){\makebox(90,90){sur}}
\end{picture}}
\put(480,720){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,0){\framebox(90,90){}}
\put(90,0){\makebox(90,90){sbr}}
\end{picture}}
\put(720,720){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,0){\framebox(90,90){}}
\put(0,0){\makebox(90,90){sbl}}
\end{picture}}
\put(0,480){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,90){\line(-1,0){90}}
\put(90,90){\line(0,1){90}}
\put(90.0,180.0){\circle*{1}}\put(88.7,180.0){\circle*{1}}
\put(87.5,180.0){\circle*{1}}\put(86.2,179.9){\circle*{1}}
\put(84.9,179.9){\circle*{1}}\put(83.6,179.8){\circle*{1}}
\put(82.4,179.7){\circle*{1}}\put(81.1,179.6){\circle*{1}}
\put(79.8,179.4){\circle*{1}}\put(78.5,179.3){\circle*{1}}
\put(77.3,179.1){\circle*{1}}\put(76.0,178.9){\circle*{1}}
\put(74.7,178.7){\circle*{1}}\put(73.5,178.5){\circle*{1}}
\put(72.2,178.2){\circle*{1}}\put(70.9,178.0){\circle*{1}}
\put(69.6,177.7){\circle*{1}}\put(68.4,177.4){\circle*{1}}
\put(67.1,177.0){\circle*{1}}\put(65.8,176.7){\circle*{1}}
\put(64.5,176.3){\circle*{1}}\put(63.3,175.9){\circle*{1}}
\put(62.0,175.5){\circle*{1}}\put(60.7,175.1){\circle*{1}}
\put(59.5,174.7){\circle*{1}}\put(58.2,174.2){\circle*{1}}
\put(56.9,173.7){\circle*{1}}\put(55.6,173.2){\circle*{1}}
\put(54.4,172.6){\circle*{1}}\put(53.1,172.1){\circle*{1}}
\put(51.8,171.5){\circle*{1}}\put(50.5,170.9){\circle*{1}}
\put(49.3,170.3){\circle*{1}}\put(48.0,169.6){\circle*{1}}
\put(46.7,168.9){\circle*{1}}\put(45.5,168.2){\circle*{1}}
\put(44.2,167.5){\circle*{1}}\put(42.9,166.7){\circle*{1}}
\put(41.6,165.9){\circle*{1}}\put(40.4,165.1){\circle*{1}}
\put(39.1,164.2){\circle*{1}}\put(37.8,163.3){\circle*{1}}
\put(36.5,162.4){\circle*{1}}\put(35.3,161.4){\circle*{1}}
\put(34.0,160.5){\circle*{1}}\put(32.7,159.4){\circle*{1}}
\put(31.5,158.4){\circle*{1}}\put(30.2,157.2){\circle*{1}}
\put(28.9,156.1){\circle*{1}}\put(27.6,154.9){\circle*{1}}
\put(26.4,153.6){\circle*{1}}\put(0.0,90.0){\circle*{1}}
\put(0.0,91.3){\circle*{1}}\put(0.0,92.5){\circle*{1}}
\put(0.1,93.8){\circle*{1}}\put(0.1,95.1){\circle*{1}}
\put(0.2,96.4){\circle*{1}}\put(0.3,97.6){\circle*{1}}
\put(0.4,98.9){\circle*{1}}\put(0.6,100.2){\circle*{1}}
\put(0.7,101.5){\circle*{1}}\put(0.9,102.7){\circle*{1}}
\put(1.1,104.0){\circle*{1}}\put(1.3,105.3){\circle*{1}}
\put(1.5,106.5){\circle*{1}}\put(1.8,107.8){\circle*{1}}
\put(2.0,109.1){\circle*{1}}\put(2.3,110.4){\circle*{1}}
\put(2.6,111.6){\circle*{1}}\put(3.0,112.9){\circle*{1}}
\put(3.3,114.2){\circle*{1}}\put(3.7,115.5){\circle*{1}}
\put(4.1,116.7){\circle*{1}}\put(4.5,118.0){\circle*{1}}
\put(4.9,119.3){\circle*{1}}\put(5.3,120.5){\circle*{1}}
\put(5.8,121.8){\circle*{1}}\put(6.3,123.1){\circle*{1}}
\put(6.8,124.4){\circle*{1}}\put(7.4,125.6){\circle*{1}}
\put(7.9,126.9){\circle*{1}}\put(8.5,128.2){\circle*{1}}
\put(9.1,129.5){\circle*{1}}\put(9.7,130.7){\circle*{1}}
\put(10.4,132.0){\circle*{1}}\put(11.1,133.3){\circle*{1}}
\put(11.8,134.5){\circle*{1}}\put(12.5,135.8){\circle*{1}}
\put(13.3,137.1){\circle*{1}}\put(14.1,138.4){\circle*{1}}
\put(14.9,139.6){\circle*{1}}\put(15.8,140.9){\circle*{1}}
\put(16.7,142.2){\circle*{1}}\put(17.6,143.5){\circle*{1}}
\put(18.6,144.7){\circle*{1}}\put(19.5,146.0){\circle*{1}}
\put(20.6,147.3){\circle*{1}}\put(21.6,148.5){\circle*{1}}
\put(22.8,149.8){\circle*{1}}\put(23.9,151.1){\circle*{1}}
\put(25.1,152.4){\circle*{1}}
\put(30,90){\makebox(60,60){cul}}
\end{picture}}
\put(240,480){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,90){\line(1,0){90}}
\put(90,90){\line(0,1){90}}
\put(90.0,180.0){\circle*{1}}\put(91.3,180.0){\circle*{1}}
\put(92.5,180.0){\circle*{1}}\put(93.8,179.9){\circle*{1}}
\put(95.1,179.9){\circle*{1}}\put(96.4,179.8){\circle*{1}}
\put(97.6,179.7){\circle*{1}}\put(98.9,179.6){\circle*{1}}
\put(100.2,179.4){\circle*{1}}\put(101.5,179.3){\circle*{1}}
\put(102.7,179.1){\circle*{1}}\put(104.0,178.9){\circle*{1}}
\put(105.3,178.7){\circle*{1}}\put(106.5,178.5){\circle*{1}}
\put(107.8,178.2){\circle*{1}}\put(109.1,178.0){\circle*{1}}
\put(110.4,177.7){\circle*{1}}\put(111.6,177.4){\circle*{1}}
\put(112.9,177.0){\circle*{1}}\put(114.2,176.7){\circle*{1}}
\put(115.5,176.3){\circle*{1}}\put(116.7,175.9){\circle*{1}}
\put(118.0,175.5){\circle*{1}}\put(119.3,175.1){\circle*{1}}
\put(120.5,174.7){\circle*{1}}\put(121.8,174.2){\circle*{1}}
\put(123.1,173.7){\circle*{1}}\put(124.4,173.2){\circle*{1}}
\put(125.6,172.6){\circle*{1}}\put(126.9,172.1){\circle*{1}}
\put(128.2,171.5){\circle*{1}}\put(129.5,170.9){\circle*{1}}
\put(130.7,170.3){\circle*{1}}\put(132.0,169.6){\circle*{1}}
\put(133.3,168.9){\circle*{1}}\put(134.5,168.2){\circle*{1}}
\put(135.8,167.5){\circle*{1}}\put(137.1,166.7){\circle*{1}}
\put(138.4,165.9){\circle*{1}}\put(139.6,165.1){\circle*{1}}
\put(140.9,164.2){\circle*{1}}\put(142.2,163.3){\circle*{1}}
\put(143.5,162.4){\circle*{1}}\put(144.7,161.4){\circle*{1}}
\put(146.0,160.5){\circle*{1}}\put(147.3,159.4){\circle*{1}}
\put(148.5,158.4){\circle*{1}}\put(149.8,157.2){\circle*{1}}
\put(151.1,156.1){\circle*{1}}\put(152.4,154.9){\circle*{1}}
\put(153.6,153.6){\circle*{1}}\put(180.0,90.0){\circle*{1}}
\put(180.0,91.3){\circle*{1}}\put(180.0,92.5){\circle*{1}}
\put(179.9,93.8){\circle*{1}}\put(179.9,95.1){\circle*{1}}
\put(179.8,96.4){\circle*{1}}\put(179.7,97.6){\circle*{1}}
\put(179.6,98.9){\circle*{1}}\put(179.4,100.2){\circle*{1}}
\put(179.3,101.5){\circle*{1}}\put(179.1,102.7){\circle*{1}}
\put(178.9,104.0){\circle*{1}}\put(178.7,105.3){\circle*{1}}
\put(178.5,106.5){\circle*{1}}\put(178.2,107.8){\circle*{1}}
\put(178.0,109.1){\circle*{1}}\put(177.7,110.4){\circle*{1}}
\put(177.4,111.6){\circle*{1}}\put(177.0,112.9){\circle*{1}}
\put(176.7,114.2){\circle*{1}}\put(176.3,115.5){\circle*{1}}
\put(175.9,116.7){\circle*{1}}\put(175.5,118.0){\circle*{1}}
\put(175.1,119.3){\circle*{1}}\put(174.7,120.5){\circle*{1}}
\put(174.2,121.8){\circle*{1}}\put(173.7,123.1){\circle*{1}}
\put(173.2,124.4){\circle*{1}}\put(172.6,125.6){\circle*{1}}
\put(172.1,126.9){\circle*{1}}\put(171.5,128.2){\circle*{1}}
\put(170.9,129.5){\circle*{1}}\put(170.3,130.7){\circle*{1}}
\put(169.6,132.0){\circle*{1}}\put(168.9,133.3){\circle*{1}}
\put(168.2,134.5){\circle*{1}}\put(167.5,135.8){\circle*{1}}
\put(166.7,137.1){\circle*{1}}\put(165.9,138.4){\circle*{1}}
\put(165.1,139.6){\circle*{1}}\put(164.2,140.9){\circle*{1}}
\put(163.3,142.2){\circle*{1}}\put(162.4,143.5){\circle*{1}}
\put(161.4,144.7){\circle*{1}}\put(160.5,146.0){\circle*{1}}
\put(159.4,147.3){\circle*{1}}\put(158.4,148.5){\circle*{1}}
\put(157.2,149.8){\circle*{1}}\put(156.1,151.1){\circle*{1}}
\put(154.9,152.4){\circle*{1}}
\put(90,90){\makebox(60,60){cur}}
\end{picture}}
\put(480,480){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,90){\line(1,0){90}}
\put(90,90){\line(0,-1){90}}
\put(90.0,0.0){\circle*{1}}\put(91.3,0.0){\circle*{1}}
\put(92.5,0.0){\circle*{1}}\put(93.8,0.1){\circle*{1}}
\put(95.1,0.1){\circle*{1}}\put(96.4,0.2){\circle*{1}}
\put(97.6,0.3){\circle*{1}}\put(98.9,0.4){\circle*{1}}
\put(100.2,0.6){\circle*{1}}\put(101.5,0.7){\circle*{1}}
\put(102.7,0.9){\circle*{1}}\put(104.0,1.1){\circle*{1}}
\put(105.3,1.3){\circle*{1}}\put(106.5,1.5){\circle*{1}}
\put(107.8,1.8){\circle*{1}}\put(109.1,2.0){\circle*{1}}
\put(110.4,2.3){\circle*{1}}\put(111.6,2.6){\circle*{1}}
\put(112.9,3.0){\circle*{1}}\put(114.2,3.3){\circle*{1}}
\put(115.5,3.7){\circle*{1}}\put(116.7,4.1){\circle*{1}}
\put(118.0,4.5){\circle*{1}}\put(119.3,4.9){\circle*{1}}
\put(120.5,5.3){\circle*{1}}\put(121.8,5.8){\circle*{1}}
\put(123.1,6.3){\circle*{1}}\put(124.4,6.8){\circle*{1}}
\put(125.6,7.4){\circle*{1}}\put(126.9,7.9){\circle*{1}}
\put(128.2,8.5){\circle*{1}}\put(129.5,9.1){\circle*{1}}
\put(130.7,9.7){\circle*{1}}\put(132.0,10.4){\circle*{1}}
\put(133.3,11.1){\circle*{1}}\put(134.5,11.8){\circle*{1}}
\put(135.8,12.5){\circle*{1}}\put(137.1,13.3){\circle*{1}}
\put(138.4,14.1){\circle*{1}}\put(139.6,14.9){\circle*{1}}
\put(140.9,15.8){\circle*{1}}\put(142.2,16.7){\circle*{1}}
\put(143.5,17.6){\circle*{1}}\put(144.7,18.6){\circle*{1}}
\put(146.0,19.5){\circle*{1}}\put(147.3,20.6){\circle*{1}}
\put(148.5,21.6){\circle*{1}}\put(149.8,22.8){\circle*{1}}
\put(151.1,23.9){\circle*{1}}\put(152.4,25.1){\circle*{1}}
\put(153.6,26.4){\circle*{1}}\put(180.0,90.0){\circle*{1}}
\put(180.0,88.7){\circle*{1}}\put(180.0,87.5){\circle*{1}}
\put(179.9,86.2){\circle*{1}}\put(179.9,84.9){\circle*{1}}
\put(179.8,83.6){\circle*{1}}\put(179.7,82.4){\circle*{1}}
\put(179.6,81.1){\circle*{1}}\put(179.4,79.8){\circle*{1}}
\put(179.3,78.5){\circle*{1}}\put(179.1,77.3){\circle*{1}}
\put(178.9,76.0){\circle*{1}}\put(178.7,74.7){\circle*{1}}
\put(178.5,73.5){\circle*{1}}\put(178.2,72.2){\circle*{1}}
\put(178.0,70.9){\circle*{1}}\put(177.7,69.6){\circle*{1}}
\put(177.4,68.4){\circle*{1}}\put(177.0,67.1){\circle*{1}}
\put(176.7,65.8){\circle*{1}}\put(176.3,64.5){\circle*{1}}
\put(175.9,63.3){\circle*{1}}\put(175.5,62.0){\circle*{1}}
\put(175.1,60.7){\circle*{1}}\put(174.7,59.5){\circle*{1}}
\put(174.2,58.2){\circle*{1}}\put(173.7,56.9){\circle*{1}}
\put(173.2,55.6){\circle*{1}}\put(172.6,54.4){\circle*{1}}
\put(172.1,53.1){\circle*{1}}\put(171.5,51.8){\circle*{1}}
\put(170.9,50.5){\circle*{1}}\put(170.3,49.3){\circle*{1}}
\put(169.6,48.0){\circle*{1}}\put(168.9,46.7){\circle*{1}}
\put(168.2,45.5){\circle*{1}}\put(167.5,44.2){\circle*{1}}
\put(166.7,42.9){\circle*{1}}\put(165.9,41.6){\circle*{1}}
\put(165.1,40.4){\circle*{1}}\put(164.2,39.1){\circle*{1}}
\put(163.3,37.8){\circle*{1}}\put(162.4,36.5){\circle*{1}}
\put(161.4,35.3){\circle*{1}}\put(160.5,34.0){\circle*{1}}
\put(159.4,32.7){\circle*{1}}\put(158.4,31.5){\circle*{1}}
\put(157.2,30.2){\circle*{1}}\put(156.1,28.9){\circle*{1}}
\put(154.9,27.6){\circle*{1}}
\put(90,30){\makebox(60,60){cbr}}
\end{picture}}
\put(720,480){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,90){\line(-1,0){90}}
\put(90,90){\line(0,-1){90}}
\put(90.0,0.0){\circle*{1}}\put(88.7,0.0){\circle*{1}}
\put(87.5,0.0){\circle*{1}}\put(86.2,0.1){\circle*{1}}
\put(84.9,0.1){\circle*{1}}\put(83.6,0.2){\circle*{1}}
\put(82.4,0.3){\circle*{1}}\put(81.1,0.4){\circle*{1}}
\put(79.8,0.6){\circle*{1}}\put(78.5,0.7){\circle*{1}}
\put(77.3,0.9){\circle*{1}}\put(76.0,1.1){\circle*{1}}
\put(74.7,1.3){\circle*{1}}\put(73.5,1.5){\circle*{1}}
\put(72.2,1.8){\circle*{1}}\put(70.9,2.0){\circle*{1}}
\put(69.6,2.3){\circle*{1}}\put(68.4,2.6){\circle*{1}}
\put(67.1,3.0){\circle*{1}}\put(65.8,3.3){\circle*{1}}
\put(64.5,3.7){\circle*{1}}\put(63.3,4.1){\circle*{1}}
\put(62.0,4.5){\circle*{1}}\put(60.7,4.9){\circle*{1}}
\put(59.5,5.3){\circle*{1}}\put(58.2,5.8){\circle*{1}}
\put(56.9,6.3){\circle*{1}}\put(55.6,6.8){\circle*{1}}
\put(54.4,7.4){\circle*{1}}\put(53.1,7.9){\circle*{1}}
\put(51.8,8.5){\circle*{1}}\put(50.5,9.1){\circle*{1}}
\put(49.3,9.7){\circle*{1}}\put(48.0,10.4){\circle*{1}}
\put(46.7,11.1){\circle*{1}}\put(45.5,11.8){\circle*{1}}
\put(44.2,12.5){\circle*{1}}\put(42.9,13.3){\circle*{1}}
\put(41.6,14.1){\circle*{1}}\put(40.4,14.9){\circle*{1}}
\put(39.1,15.8){\circle*{1}}\put(37.8,16.7){\circle*{1}}
\put(36.5,17.6){\circle*{1}}\put(35.3,18.6){\circle*{1}}
\put(34.0,19.5){\circle*{1}}\put(32.7,20.6){\circle*{1}}
\put(31.5,21.6){\circle*{1}}\put(30.2,22.8){\circle*{1}}
\put(28.9,23.9){\circle*{1}}\put(27.6,25.1){\circle*{1}}
\put(26.4,26.4){\circle*{1}}\put(0.0,90.0){\circle*{1}}
\put(0.0,88.7){\circle*{1}}\put(0.0,87.5){\circle*{1}}
\put(0.1,86.2){\circle*{1}}\put(0.1,84.9){\circle*{1}}
\put(0.2,83.6){\circle*{1}}\put(0.3,82.4){\circle*{1}}
\put(0.4,81.1){\circle*{1}}\put(0.6,79.8){\circle*{1}}
\put(0.7,78.5){\circle*{1}}\put(0.9,77.3){\circle*{1}}
\put(1.1,76.0){\circle*{1}}\put(1.3,74.7){\circle*{1}}
\put(1.5,73.5){\circle*{1}}\put(1.8,72.2){\circle*{1}}
\put(2.0,70.9){\circle*{1}}\put(2.3,69.6){\circle*{1}}
\put(2.6,68.4){\circle*{1}}\put(3.0,67.1){\circle*{1}}
\put(3.3,65.8){\circle*{1}}\put(3.7,64.5){\circle*{1}}
\put(4.1,63.3){\circle*{1}}\put(4.5,62.0){\circle*{1}}
\put(4.9,60.7){\circle*{1}}\put(5.3,59.5){\circle*{1}}
\put(5.8,58.2){\circle*{1}}\put(6.3,56.9){\circle*{1}}
\put(6.8,55.6){\circle*{1}}\put(7.4,54.4){\circle*{1}}
\put(7.9,53.1){\circle*{1}}\put(8.5,51.8){\circle*{1}}
\put(9.1,50.5){\circle*{1}}\put(9.7,49.3){\circle*{1}}
\put(10.4,48.0){\circle*{1}}\put(11.1,46.7){\circle*{1}}
\put(11.8,45.5){\circle*{1}}\put(12.5,44.2){\circle*{1}}
\put(13.3,42.9){\circle*{1}}\put(14.1,41.6){\circle*{1}}
\put(14.9,40.4){\circle*{1}}\put(15.8,39.1){\circle*{1}}
\put(16.7,37.8){\circle*{1}}\put(17.6,36.5){\circle*{1}}
\put(18.6,35.3){\circle*{1}}\put(19.5,34.0){\circle*{1}}
\put(20.6,32.7){\circle*{1}}\put(21.6,31.5){\circle*{1}}
\put(22.8,30.2){\circle*{1}}\put(23.9,28.9){\circle*{1}}
\put(25.1,27.6){\circle*{1}}
\put(30,30){\makebox(60,60){cbl}}
\end{picture}}
\put(0,240){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,90){\line(-1,0){90}}
\put(90,90){\line(0,1){90}}
\put(0,90){\line(1,1){90}}
\put(45,90){\makebox(45,45){tul}}
\end{picture}}
\put(240,240){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,90){\line(1,0){90}}
\put(90,90){\line(0,1){90}}
\put(90,180){\line(1,-1){90}}
\put(90,90){\makebox(45,45){tur}}
\end{picture}}
\put(480,240){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,90){\line(1,0){90}}
\put(90,90){\line(0,-1){90}}
\put(90,0){\line(1,1){90}}
\put(90,45){\makebox(45,45){tbr}}
\end{picture}}
\put(720,240){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,90){\line(-1,0){90}}
\put(90,90){\line(0,-1){90}}
\put(0,90){\line(1,-1){90}}
\put(45,45){\makebox(45,45){tbl}}
\end{picture}}
\put(0,0){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,180){\line(1,0){90}}
\put(0,90){\line(0,1){90}}
\put(0,90){\line(1,1){90}}
\put(0,135){\makebox(45,45){rul}}
\end{picture}}
\put(240,0){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,180){\line(1,0){90}}
\put(180,90){\line(0,1){90}}
\put(90,180){\line(1,-1){90}}
\put(135,135){\makebox(45,45){rur}}
\end{picture}}
\put(480,0){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,0){\line(1,0){90}}
\put(180,0){\line(0,1){90}}
\put(90,0){\line(1,1){90}}
\put(135,0){\makebox(45,45){rbr}}
\end{picture}}
\put(720,0){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,0){\line(1,0){90}}
\put(0,0){\line(0,1){90}}
\put(0,90){\line(1,-1){90}}
\put(0,0){\makebox(45,45){rbl}}
\end{picture}}
\end{picture}
\end{center}
\caption{Short Patches.}
\label{shortpatches}
\end{figure}
The definitions of each japanese character follow sequentially. The template
for such a definition is:
\begin{quote}
\tt beginchar(0,\em width \tt\#,\em body\_height \tt\#,\em desc\_depth \tt\#);\\
\verb"normal_adjust_fit(2u#,2u#);"\\
$\vdots$\\
\verb"endchar;"
\end{quote}
\newpage %improve a bad page break
\begin{figure}[htb]
\begin{center}
\setlength{\unitlength}{0.38pt}
\begin{picture}(900,900)
\put(0,720){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,90){\line(1,0){180}}
\put(180,90){\line(0,1){90}}
\put(0,90){\line(2,1){180}}
\put(90,90){\makebox(90,45){tuul}}
\end{picture}}
\put(240,720){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,0){\line(0,1){180}}
\put(0,0){\line(1,0){90}}
\put(0,0){\line(1,2){90}}
\put(30,0){\makebox(60,60){tull}}
\end{picture}}
\put(480,720){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,90){\line(1,0){180}}
\put(0,90){\line(0,1){90}}
\put(0,180){\line(2,-1){180}}
\put(0,90){\makebox(90,45){tuur}}
\end{picture}}
\put(720,720){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,0){\line(0,1){180}}
\put(90,0){\line(1,0){90}}
\put(90,180){\line(1,-2){90}}
\put(90,0){\makebox(60,60){turr}}
\end{picture}}
\put(0,480){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,90){\line(1,0){180}}
\put(0,0){\line(0,1){90}}
\put(0,0){\line(2,1){180}}
\put(0,45){\makebox(90,45){tbbr}}
\end{picture}}
\put(240,480){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,0){\line(0,1){180}}
\put(90,180){\line(1,0){90}}
\put(90,0){\line(1,2){90}}
\put(90,120){\makebox(60,60){tbrr}}
\end{picture}}
\put(480,480){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,90){\line(1,0){180}}
\put(180,0){\line(0,1){90}}
\put(0,90){\line(2,-1){180}}
\put(90,45){\makebox(90,45){tbbl}}
\end{picture}}
\put(720,480){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(90,0){\line(0,1){180}}
\put(0,180){\line(1,0){90}}
\put(0,180){\line(1,-2){90}}
\put(30,120){\makebox(60,60){tbll}}
\end{picture}}
\put(0,240){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,0){\line(0,1){180}}
\put(0,180){\line(1,0){90}}
\put(0,0){\line(1,2){90}}
\put(0,120){\makebox(60,60){ruul}}
\end{picture}}
\put(240,240){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,180){\line(1,0){180}}
\put(0,90){\line(0,1){90}}
\put(0,90){\line(2,1){180}}
\put(0,135){\makebox(90,45){rull}}
\end{picture}}
\put(480,240){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(180,0){\line(0,1){180}}
\put(90,180){\line(1,0){90}}
\put(90,180){\line(1,-2){90}}
\put(120,120){\makebox(60,60){ruur}}
\end{picture}}
\put(720,240){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,180){\line(1,0){180}}
\put(180,90){\line(0,1){90}}
\put(0,180){\line(2,-1){180}}
\put(90,135){\makebox(90,45){rurr}}
\end{picture}}
\put(0,0){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(180,0){\line(0,1){180}}
\put(90,0){\line(1,0){90}}
\put(90,0){\line(1,2){90}}
\put(120,0){\makebox(60,60){rbbr}}
\end{picture}}
\put(240,0){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,0){\line(1,0){180}}
\put(180,0){\line(0,1){90}}
\put(0,0){\line(2,1){180}}
\put(90,0){\makebox(90,45){rbrr}}
\end{picture}}
\put(480,0){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,0){\line(0,1){180}}
\put(0,0){\line(1,0){90}}
\put(0,180){\line(1,-2){90}}
\put(0,0){\makebox(60,60){rbbl}}
\end{picture}}
\put(720,0){%
\begin{picture}(180,180)
\put(0,0){\dashbox{5}(180,180){}}
\put(0,0){\line(1,0){180}}
\put(0,0){\line(0,1){90}}
\put(0,90){\line(2,-1){180}}
\put(0,0){\makebox(90,45){rbll}}
\end{picture}}
\end{picture}
\end{center}
\caption{Long Patches.}
\label{longpatches}
\end{figure}
All sizes are given in terms of the fundamental unit of measurement $u$. The
quantities {\em body\_height\/} and {\em desc\_depth\/} must include the border
which is $2u$ thick. However, {\em width\/} does not need to include this
border because the statement \verb"normal_adjust_fit" is equivalent to it
horizontally. \MFT\ is somewhat more flexible in the horizontal direction by
design and intent. The body of a character definition is simply a series of
macro calls. Each line contains the macros for a given pixel in the bitmap.
Consequently, each line is reasonably short.
\newpage %improve a bad page break
The \MFT\ code ends with a final header containing a few pieces of information
for the \TeX\ Font Metric (\verb".tfm") files. The following are the most
interesting items:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
font_normal_space 8u#;
font_normal_stretch 4u#;
font_normal_shrink 3u#;
font_x_height 24u#; %ex
font_quad 24u#; %em
\end{verbatim}
\end{quote}
I set the normal inter-word spacing to a third of the maximum width of a
character. This seems comparable to the scheme used in several Computer Modern
fonts. Stretching and shrinking are set to values also comparable to what is
used elsewhere. I set the typical character height and width to the maximum
size of a bitmap.
\subsection{Algorithm}
\label{algorithm}
Given a bitmap, it is straightforward to determine its width and height, either
fixed or minimized, while making sure that the vertical relationship with the
horizontal baseline is respected. The bulk of the problem lies in determining
the proper combination of squares, triangles, and quarter circles to be used.
This subsection describes an algorithm developed jointly by Mr. Masatoshi
Watanabe and me. I find that it produces good enough results for my need. But
perhaps somebody will not share my opinion, and in that case, the following
will no doubt prove helpful.
The current bitmap is read into a 24~by~24 array of boolean variables. In what
follows, I will say that a cell is {\em active\/} if the bitmap dictates that a
dot should lie in it, otherwise it is {\em inactive}. Each cell is subdivided
in four, and each subcell is examined with respect to the neighboring cells.
The current algorithm is very local in that only neighboring cells in direct
contact with the current cell are examined. A more global algorithm should
perform better and that is certainly an area worth investigating for future
releases.
From now on, I will concentrate on the upper left subcell. The other three
subcells are handled in a similar fashion. In the following diagrams, a
$\bullet$ indicates an active cell and a $\times$ indicates an inactive cell.
Unlabeled neighboring cells are simply irrelevant.
The simplest case occurs when the current cell is inactive. Although the center
of that cell should remain empty, it is possible to use its border to smooth a
nearby painted area. The algorithm always tries to use long shapes first,
before falling back to shorter shapes.
First, the following cases clearly require that the upper left subcell not
be painted:
\begin{center}
\setlength{\unitlength}{0.4pt}
\begin{picture}(660,180)
\put(0,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,0){\makebox(60,60){\Huge$\bullet$}}
\put(0,60){\makebox(60,60){\Huge$\bullet$}}
\put(0,120){\makebox(60,60){\Huge$\bullet$}}
\put(60,0){\makebox(60,60){\Huge$\times$}}
\put(60,120){\makebox(60,60){\Huge$\times$}}
\put(60,90){\makebox(30,30){\large$\times$}}
\end{picture}}
\put(240,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,0){\makebox(60,60){\Huge$\times$}}
\put(0,60){\makebox(60,60){\Huge$\times$}}
\put(0,120){\makebox(60,60){\Huge$\times$}}
\put(60,120){\makebox(60,60){\Huge$\times$}}
\put(120,120){\makebox(60,60){\Huge$\times$}}
\put(60,90){\makebox(30,30){\large$\times$}}
\end{picture}}
\put(480,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,120){\makebox(60,60){\Huge$\bullet$}}
\put(60,120){\makebox(60,60){\Huge$\bullet$}}
\put(120,120){\makebox(60,60){\Huge$\bullet$}}
\put(0,60){\makebox(60,60){\Huge$\times$}}
\put(120,60){\makebox(60,60){\Huge$\times$}}
\put(60,90){\makebox(30,30){\large$\times$}}
\end{picture}}
\end{picture}
\end{center}
These three cases require reverse triangles involving the upper left subcell:
\begin{center}
\setlength{\unitlength}{0.4pt}
\begin{picture}(660,180)
\put(0,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,0){\makebox(60,60){\Huge$\bullet$}}
\put(0,60){\makebox(60,60){\Huge$\bullet$}}
\put(60,120){\makebox(60,60){\Huge$\bullet$}}
\put(120,120){\makebox(60,60){\Huge$\times$}}
\put(60,60){\line(0,1){60}}
\put(60,120){\line(1,0){30}}
\put(60,60){\line(1,2){30}}
\end{picture}}
\put(240,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(120,120){\makebox(60,60){\Huge$\bullet$}}
\put(0,60){\makebox(60,60){\Huge$\bullet$}}
\put(60,120){\makebox(60,60){\Huge$\bullet$}}
\put(0,0){\makebox(60,60){\Huge$\times$}}
\put(60,120){\line(1,0){60}}
\put(60,90){\line(0,1){30}}
\put(60,90){\line(2,1){60}}
\end{picture}}
\put(480,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,60){\makebox(60,60){\Huge$\bullet$}}
\put(60,120){\makebox(60,60){\Huge$\bullet$}}
\put(120,120){\makebox(60,60){\Huge$\times$}}
\put(0,0){\makebox(60,60){\Huge$\times$}}
\put(60,120){\line(1,0){30}}
\put(60,90){\line(0,1){30}}
\put(60,90){\line(1,1){30}}
\end{picture}}
\end{picture}
\end{center}
There are two possible ways of handling the remaining case:
\begin{center}
\setlength{\unitlength}{0.4pt}
\begin{picture}(420,180)
\put(0,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,0){\makebox(60,60){\Huge$\bullet$}}
\put(0,60){\makebox(60,60){\Huge$\bullet$}}
\put(60,120){\makebox(60,60){\Huge$\bullet$}}
\put(120,120){\makebox(60,60){\Huge$\bullet$}}
\put(60,90){\makebox(30,30){\large$\times$}}
\end{picture}}
\put(240,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,0){\makebox(60,60){\Huge$\bullet$}}
\put(0,60){\makebox(60,60){\Huge$\bullet$}}
\put(60,120){\makebox(60,60){\Huge$\bullet$}}
\put(120,120){\makebox(60,60){\Huge$\bullet$}}
\put(60,120){\line(1,0){30}}
\put(60,90){\line(0,1){30}}
\put(60,90){\line(1,1){30}}
\end{picture}}
\end{picture}
\end{center}
The technique on the left has the advantage of producing clean crossings of
$+$ strokes, but experimentation shows that it often yields bad crossings of
$\times$ strokes. The technique on the right produces good crossings of
$\times$ strokes, but it also generates crossings of $+$ strokes with
unnecessarily round corners. I examined both alternatives with \MFT\ in proof
mode, and I found that it is preferable to have characters occasionally
slightly too smooth, rather than sharp ones occasionally rough. Therefore, the
approach on the right is the one used in \verb"JIS2MF".
\newpage %improve a bad page break
The most complex situation occurs when the center cell is active. Each of its
subcells will be filled by a square, a triangle, or a quarter circle. No
reverse triangle is used in such instances since I insist that the interior of
the cell be filled. As always, long triangles are tried first. The possible
four cases involving the upper left subcell are:
\begin{center}
\setlength{\unitlength}{0.4pt}
\begin{picture}(900,180)
\put(0,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,0){\makebox(60,60){\Huge$\bullet$}}
\put(120,60){\makebox(60,60){\Huge$\bullet$}}
\put(0,60){\makebox(60,60){\Huge$\times$}}
\put(0,120){\makebox(60,60){\Huge$\times$}}
\put(60,120){\makebox(60,60){\Huge$\times$}}
\put(120,120){\makebox(60,60){\Huge$\times$}}
\put(60,90){\line(1,0){60}}
\put(120,90){\line(0,1){30}}
\put(60,90){\line(2,1){60}}
\end{picture}}
\put(240,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(60,0){\makebox(60,60){\Huge$\bullet$}}
\put(120,120){\makebox(60,60){\Huge$\bullet$}}
\put(0,0){\makebox(60,60){\Huge$\times$}}
\put(0,60){\makebox(60,60){\Huge$\times$}}
\put(0,120){\makebox(60,60){\Huge$\times$}}
\put(60,120){\makebox(60,60){\Huge$\times$}}
\put(90,60){\line(0,1){60}}
\put(60,60){\line(1,0){30}}
\put(60,60){\line(1,2){30}}
\end{picture}}
\put(480,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,60){\makebox(60,60){\Huge$\bullet$}}
\put(120,0){\makebox(60,60){\Huge$\bullet$}}
\put(0,120){\makebox(60,60){\Huge$\times$}}
\put(60,120){\makebox(60,60){\Huge$\times$}}
\put(120,120){\makebox(60,60){\Huge$\times$}}
\put(120,60){\makebox(60,60){\Huge$\times$}}
\put(60,90){\line(1,0){60}}
\put(60,90){\line(0,1){30}}
\put(60,120){\line(2,-1){60}}
\end{picture}}
\put(720,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(120,0){\makebox(60,60){\Huge$\bullet$}}
\put(60,120){\makebox(60,60){\Huge$\bullet$}}
\put(0,0){\makebox(60,60){\Huge$\times$}}
\put(60,0){\makebox(60,60){\Huge$\times$}}
\put(0,60){\makebox(60,60){\Huge$\times$}}
\put(0,120){\makebox(60,60){\Huge$\times$}}
\put(90,60){\line(0,1){60}}
\put(60,120){\line(1,0){30}}
\put(60,120){\line(1,-2){30}}
\end{picture}}
\end{picture}
\end{center}
If none of these cases can be applied, the following three cases are tried out:
\begin{center}
\setlength{\unitlength}{0.4pt}
\begin{picture}(660,180)
\put(0,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,60){\makebox(60,60){\Huge$\bullet$}}
\put(60,90){\framebox(30,30){}}
\end{picture}}
\put(240,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,120){\makebox(60,60){\Huge$\bullet$}}
\put(60,90){\framebox(30,30){}}
\end{picture}}
\put(480,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(60,120){\makebox(60,60){\Huge$\bullet$}}
\put(60,90){\framebox(30,30){}}
\end{picture}}
\end{picture}
\end{center}
If neither of these is relevant, I always resort to one of these three final
cases:
\begin{center}
\setlength{\unitlength}{0.4pt}
\begin{picture}(660,180)
\put(0,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,60){\makebox(60,60){\Huge$\times$}}
\put(0,120){\makebox(60,60){\Huge$\times$}}
\put(60,120){\makebox(60,60){\Huge$\times$}}
\put(120,120){\makebox(60,60){\Huge$\bullet$}}
\put(90,90){\line(-1,0){30}}
\put(90,90){\line(0,1){30}}
\put(60,90){\line(1,1){30}}
\end{picture}}
\put(240,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,60){\makebox(60,60){\Huge$\times$}}
\put(0,120){\makebox(60,60){\Huge$\times$}}
\put(60,120){\makebox(60,60){\Huge$\times$}}
\put(0,0){\makebox(60,60){\Huge$\bullet$}}
\put(90,90){\line(-1,0){30}}
\put(90,90){\line(0,1){30}}
\put(60,90){\line(1,1){30}}
\end{picture}}
\put(480,0){%
\begin{picture}(180,180)
\multiput(0,0)(60,0){4}{\dashbox{5}(0,180){}}
\multiput(0,0)(0,60){4}{\dashbox{5}(180,0){}}
\put(0,60){\makebox(60,60){\Huge$\times$}}
\put(0,120){\makebox(60,60){\Huge$\times$}}
\put(60,120){\makebox(60,60){\Huge$\times$}}
\put(0,0){\makebox(60,60){\Huge$\times$}}
\put(120,120){\makebox(60,60){\Huge$\times$}}
\put(90,90){\line(-1,0){30}}
\put(90,90){\line(0,1){30}}
\put(90.0,120.0){\circle*{1}}\put(89.3,120.0){\circle*{1}}
\put(88.6,120.0){\circle*{1}}\put(87.9,119.9){\circle*{1}}
\put(87.2,119.9){\circle*{1}}\put(86.5,119.8){\circle*{1}}
\put(85.8,119.7){\circle*{1}}\put(85.1,119.6){\circle*{1}}
\put(84.3,119.5){\circle*{1}}\put(83.6,119.3){\circle*{1}}
\put(82.9,119.2){\circle*{1}}\put(82.2,119.0){\circle*{1}}
\put(81.5,118.8){\circle*{1}}\put(80.8,118.6){\circle*{1}}
\put(80.1,118.3){\circle*{1}}\put(79.4,118.1){\circle*{1}}
\put(78.7,117.8){\circle*{1}}\put(78.0,117.5){\circle*{1}}
\put(77.3,117.2){\circle*{1}}\put(76.6,116.8){\circle*{1}}
\put(75.9,116.5){\circle*{1}}\put(75.2,116.1){\circle*{1}}
\put(74.4,115.7){\circle*{1}}\put(73.7,115.2){\circle*{1}}
\put(73.0,114.7){\circle*{1}}\put(72.3,114.2){\circle*{1}}
\put(71.6,113.7){\circle*{1}}\put(70.9,113.1){\circle*{1}}
\put(70.2,112.5){\circle*{1}}\put(69.5,111.9){\circle*{1}}
\put(68.8,111.2){\circle*{1}}\put(60.0,90.0){\circle*{1}}
\put(60.0,90.7){\circle*{1}}\put(60.0,91.4){\circle*{1}}
\put(60.1,92.1){\circle*{1}}\put(60.1,92.8){\circle*{1}}
\put(60.2,93.5){\circle*{1}}\put(60.3,94.2){\circle*{1}}
\put(60.4,94.9){\circle*{1}}\put(60.5,95.7){\circle*{1}}
\put(60.7,96.4){\circle*{1}}\put(60.8,97.1){\circle*{1}}
\put(61.0,97.8){\circle*{1}}\put(61.2,98.5){\circle*{1}}
\put(61.4,99.2){\circle*{1}}\put(61.7,99.9){\circle*{1}}
\put(61.9,100.6){\circle*{1}}\put(62.2,101.3){\circle*{1}}
\put(62.5,102.0){\circle*{1}}\put(62.8,102.7){\circle*{1}}
\put(63.2,103.4){\circle*{1}}\put(63.5,104.1){\circle*{1}}
\put(63.9,104.8){\circle*{1}}\put(64.3,105.6){\circle*{1}}
\put(64.8,106.3){\circle*{1}}\put(65.3,107.0){\circle*{1}}
\put(65.8,107.7){\circle*{1}}\put(66.3,108.4){\circle*{1}}
\put(66.9,109.1){\circle*{1}}\put(67.5,109.8){\circle*{1}}
\put(68.1,110.5){\circle*{1}}
\end{picture}}
\end{picture}
\end{center}
Note that an active cell surrounded by inactive ones is always eventually
filled by four quarter circles; the original bitmap pixel remains unchanged. In
that case, rather than using four quarter circle macro calls, I use one call to
another macro which paints one complete circle. The case of four squares is
handled similarly with one big square. These two additional macros complete the
collection of painting macros used by \verb"JIS2MF".
\newpage %improve a bad page break
Figure~\ref{bitmapandcontinuouscharacter} illustrates typical results obtained
with this algorithm using bitmap~2512 of the JIS~24 dot font.
\begin{figure}[htb]
\begin{center}
\setlength{\unitlength}{6pt}
\begin{picture}(56,24)
\put(0,0){%
\begin{picture}(25,25)(1,1)
\put(1,1){\dashbox{0.25}(24,24){}}
\put(1,5){\makebox(1,1){$\bullet$}}\put(1,16){\makebox(1,1){$\bullet$}}
\put(1,20){\makebox(1,1){$\bullet$}}\put(2,6){\makebox(1,1){$\bullet$}}
\put(2,16){\makebox(1,1){$\bullet$}}\put(2,20){\makebox(1,1){$\bullet$}}
\put(3,7){\makebox(1,1){$\bullet$}}\put(3,8){\makebox(1,1){$\bullet$}}
\put(3,16){\makebox(1,1){$\bullet$}}\put(3,20){\makebox(1,1){$\bullet$}}
\put(4,8){\makebox(1,1){$\bullet$}}\put(4,9){\makebox(1,1){$\bullet$}}
\put(4,10){\makebox(1,1){$\bullet$}}\put(4,16){\makebox(1,1){$\bullet$}}
\put(4,21){\makebox(1,1){$\bullet$}}\put(5,10){\makebox(1,1){$\bullet$}}
\put(5,11){\makebox(1,1){$\bullet$}}\put(5,12){\makebox(1,1){$\bullet$}}
\put(5,13){\makebox(1,1){$\bullet$}}\put(5,16){\makebox(1,1){$\bullet$}}
\put(5,21){\makebox(1,1){$\bullet$}}\put(6,1){\makebox(1,1){$\bullet$}}
\put(6,2){\makebox(1,1){$\bullet$}}\put(6,3){\makebox(1,1){$\bullet$}}
\put(6,4){\makebox(1,1){$\bullet$}}\put(6,5){\makebox(1,1){$\bullet$}}
\put(6,6){\makebox(1,1){$\bullet$}}\put(6,7){\makebox(1,1){$\bullet$}}
\put(6,8){\makebox(1,1){$\bullet$}}\put(6,9){\makebox(1,1){$\bullet$}}
\put(6,10){\makebox(1,1){$\bullet$}}\put(6,11){\makebox(1,1){$\bullet$}}
\put(6,12){\makebox(1,1){$\bullet$}}\put(6,13){\makebox(1,1){$\bullet$}}
\put(6,14){\makebox(1,1){$\bullet$}}\put(6,15){\makebox(1,1){$\bullet$}}
\put(6,16){\makebox(1,1){$\bullet$}}\put(6,17){\makebox(1,1){$\bullet$}}
\put(6,18){\makebox(1,1){$\bullet$}}\put(6,19){\makebox(1,1){$\bullet$}}
\put(6,20){\makebox(1,1){$\bullet$}}\put(6,21){\makebox(1,1){$\bullet$}}
\put(7,1){\makebox(1,1){$\bullet$}}\put(7,2){\makebox(1,1){$\bullet$}}
\put(7,3){\makebox(1,1){$\bullet$}}\put(7,4){\makebox(1,1){$\bullet$}}
\put(7,5){\makebox(1,1){$\bullet$}}\put(7,6){\makebox(1,1){$\bullet$}}
\put(7,7){\makebox(1,1){$\bullet$}}\put(7,8){\makebox(1,1){$\bullet$}}
\put(7,9){\makebox(1,1){$\bullet$}}\put(7,10){\makebox(1,1){$\bullet$}}
\put(7,11){\makebox(1,1){$\bullet$}}\put(7,12){\makebox(1,1){$\bullet$}}
\put(7,13){\makebox(1,1){$\bullet$}}\put(7,14){\makebox(1,1){$\bullet$}}
\put(7,15){\makebox(1,1){$\bullet$}}\put(7,16){\makebox(1,1){$\bullet$}}
\put(7,17){\makebox(1,1){$\bullet$}}\put(7,18){\makebox(1,1){$\bullet$}}
\put(7,19){\makebox(1,1){$\bullet$}}\put(7,20){\makebox(1,1){$\bullet$}}
\put(7,21){\makebox(1,1){$\bullet$}}\put(7,22){\makebox(1,1){$\bullet$}}
\put(8,12){\makebox(1,1){$\bullet$}}\put(8,16){\makebox(1,1){$\bullet$}}
\put(8,22){\makebox(1,1){$\bullet$}}\put(9,12){\makebox(1,1){$\bullet$}}
\put(9,16){\makebox(1,1){$\bullet$}}\put(9,22){\makebox(1,1){$\bullet$}}
\put(9,23){\makebox(1,1){$\bullet$}}\put(10,3){\makebox(1,1){$\bullet$}}
\put(10,11){\makebox(1,1){$\bullet$}}\put(10,16){\makebox(1,1){$\bullet$}}
\put(10,17){\makebox(1,1){$\bullet$}}\put(10,23){\makebox(1,1){$\bullet$}}
\put(10,24){\makebox(1,1){$\bullet$}}\put(11,1){\makebox(1,1){$\bullet$}}
\put(11,2){\makebox(1,1){$\bullet$}}\put(11,3){\makebox(1,1){$\bullet$}}
\put(11,9){\makebox(1,1){$\bullet$}}\put(11,10){\makebox(1,1){$\bullet$}}
\put(11,11){\makebox(1,1){$\bullet$}}\put(11,16){\makebox(1,1){$\bullet$}}
\put(11,17){\makebox(1,1){$\bullet$}}\put(11,23){\makebox(1,1){$\bullet$}}
\put(11,24){\makebox(1,1){$\bullet$}}\put(12,2){\makebox(1,1){$\bullet$}}
\put(12,3){\makebox(1,1){$\bullet$}}\put(12,9){\makebox(1,1){$\bullet$}}
\put(12,10){\makebox(1,1){$\bullet$}}\put(12,16){\makebox(1,1){$\bullet$}}
\put(12,23){\makebox(1,1){$\bullet$}}\put(13,2){\makebox(1,1){$\bullet$}}
\put(13,3){\makebox(1,1){$\bullet$}}\put(14,2){\makebox(1,1){$\bullet$}}
\put(14,3){\makebox(1,1){$\bullet$}}\put(14,4){\makebox(1,1){$\bullet$}}
\put(14,5){\makebox(1,1){$\bullet$}}\put(15,3){\makebox(1,1){$\bullet$}}
\put(15,6){\makebox(1,1){$\bullet$}}\put(15,7){\makebox(1,1){$\bullet$}}
\put(15,8){\makebox(1,1){$\bullet$}}\put(15,9){\makebox(1,1){$\bullet$}}
\put(16,3){\makebox(1,1){$\bullet$}}\put(16,8){\makebox(1,1){$\bullet$}}
\put(16,9){\makebox(1,1){$\bullet$}}\put(16,10){\makebox(1,1){$\bullet$}}
\put(16,11){\makebox(1,1){$\bullet$}}\put(16,12){\makebox(1,1){$\bullet$}}
\put(16,13){\makebox(1,1){$\bullet$}}\put(16,14){\makebox(1,1){$\bullet$}}
\put(16,15){\makebox(1,1){$\bullet$}}\put(16,16){\makebox(1,1){$\bullet$}}
\put(17,3){\makebox(1,1){$\bullet$}}\put(17,12){\makebox(1,1){$\bullet$}}
\put(17,13){\makebox(1,1){$\bullet$}}\put(17,14){\makebox(1,1){$\bullet$}}
\put(17,15){\makebox(1,1){$\bullet$}}\put(17,16){\makebox(1,1){$\bullet$}}
\put(17,17){\makebox(1,1){$\bullet$}}\put(17,18){\makebox(1,1){$\bullet$}}
\put(17,19){\makebox(1,1){$\bullet$}}\put(17,20){\makebox(1,1){$\bullet$}}
\put(17,21){\makebox(1,1){$\bullet$}}\put(17,22){\makebox(1,1){$\bullet$}}
\put(17,23){\makebox(1,1){$\bullet$}}\put(17,24){\makebox(1,1){$\bullet$}}
\put(18,3){\makebox(1,1){$\bullet$}}\put(18,17){\makebox(1,1){$\bullet$}}
\put(18,18){\makebox(1,1){$\bullet$}}\put(18,19){\makebox(1,1){$\bullet$}}
\put(18,20){\makebox(1,1){$\bullet$}}\put(18,21){\makebox(1,1){$\bullet$}}
\put(18,22){\makebox(1,1){$\bullet$}}\put(18,23){\makebox(1,1){$\bullet$}}
\put(19,4){\makebox(1,1){$\bullet$}}\put(19,23){\makebox(1,1){$\bullet$}}
\put(20,4){\makebox(1,1){$\bullet$}}\put(20,8){\makebox(1,1){$\bullet$}}
\put(21,4){\makebox(1,1){$\bullet$}}\put(21,6){\makebox(1,1){$\bullet$}}
\put(21,7){\makebox(1,1){$\bullet$}}\put(22,4){\makebox(1,1){$\bullet$}}
\put(22,5){\makebox(1,1){$\bullet$}}\put(22,6){\makebox(1,1){$\bullet$}}
\put(23,1){\makebox(1,1){$\bullet$}}\put(23,2){\makebox(1,1){$\bullet$}}
\put(23,3){\makebox(1,1){$\bullet$}}\put(23,4){\makebox(1,1){$\bullet$}}
\put(23,5){\makebox(1,1){$\bullet$}}\put(24,1){\makebox(1,1){$\bullet$}}
\put(24,2){\makebox(1,1){$\bullet$}}\put(24,3){\makebox(1,1){$\bullet$}}
\end{picture}}
\put(32,0){%
\begin{picture}(24,21.25)(0,-2.75)
\newsavebox{\sss}
\sbox{\sss}{%
\begin{picture}(1,1)
\put(0,0){\framebox(1,1){}}
\end{picture}}
\newsavebox{\sul}
\sbox{\sul}{%
\begin{picture}(1,1)
\put(0,0.5){\framebox(0.5,0.5){}}
\end{picture}}
\newsavebox{\sur}
\sbox{\sur}{%
\begin{picture}(1,1)
\put(0.5,0.5){\framebox(0.5,0.5){}}
\end{picture}}
\newsavebox{\sbr}
\sbox{\sbr}{%
\begin{picture}(1,1)
\put(0.5,0){\framebox(0.5,0.5){}}
\end{picture}}
\newsavebox{\sbl}
\sbox{\sbl}{%
\begin{picture}(1,1)
\put(0,0){\framebox(0.5,0.5){}}
\end{picture}}
\newsavebox{\cul}
\sbox{\cul}{%
\begin{picture}(1,1)
\put(0.5,0.5){\line(-1,0){0.5}}
\put(0.5,0.5){\line(0,1){0.5}}
\put(0.50,1.00){\circle*{0.05}}\put(0.43,0.99){\circle*{0.05}}
\put(0.36,0.98){\circle*{0.05}}\put(0.29,0.95){\circle*{0.05}}
\put(0.22,0.91){\circle*{0.05}}\put(0.15,0.85){\circle*{0.05}}
\put(0.00,0.50){\circle*{0.05}}\put(0.01,0.57){\circle*{0.05}}
\put(0.02,0.64){\circle*{0.05}}\put(0.05,0.71){\circle*{0.05}}
\put(0.09,0.78){\circle*{0.05}}
\end{picture}}
\newsavebox{\cur}
\sbox{\cur}{%
\begin{picture}(1,1)
\put(0.5,0.5){\line(1,0){0.5}}
\put(0.5,0.5){\line(0,1){0.5}}
\put(0.50,1.00){\circle*{0.05}}\put(0.57,0.99){\circle*{0.05}}
\put(0.64,0.98){\circle*{0.05}}\put(0.71,0.95){\circle*{0.05}}
\put(0.78,0.91){\circle*{0.05}}\put(0.85,0.85){\circle*{0.05}}
\put(1.00,0.50){\circle*{0.05}}\put(0.99,0.57){\circle*{0.05}}
\put(0.98,0.64){\circle*{0.05}}\put(0.95,0.71){\circle*{0.05}}
\put(0.91,0.78){\circle*{0.05}}
\end{picture}}
\newsavebox{\cbr}
\sbox{\cbr}{%
\begin{picture}(1,1)
\put(0.5,0.5){\line(1,0){0.5}}
\put(0.5,0.5){\line(0,-1){0.5}}
\put(0.50,0.00){\circle*{0.05}}\put(0.57,0.01){\circle*{0.05}}
\put(0.64,0.02){\circle*{0.05}}\put(0.71,0.05){\circle*{0.05}}
\put(0.78,0.09){\circle*{0.05}}\put(0.85,0.15){\circle*{0.05}}
\put(1.00,0.50){\circle*{0.05}}\put(0.99,0.43){\circle*{0.05}}
\put(0.98,0.36){\circle*{0.05}}\put(0.95,0.29){\circle*{0.05}}
\put(0.91,0.22){\circle*{0.05}}
\end{picture}}
\newsavebox{\cbl}
\sbox{\cbl}{%
\begin{picture}(1,1)
\put(0.5,0.5){\line(-1,0){0.5}}
\put(0.5,0.5){\line(0,-1){0.5}}
\put(0.50,0.00){\circle*{0.05}}\put(0.43,0.01){\circle*{0.05}}
\put(0.36,0.02){\circle*{0.05}}\put(0.29,0.05){\circle*{0.05}}
\put(0.22,0.09){\circle*{0.05}}\put(0.15,0.15){\circle*{0.05}}
\put(0.00,0.50){\circle*{0.05}}\put(0.01,0.43){\circle*{0.05}}
\put(0.02,0.36){\circle*{0.05}}\put(0.05,0.29){\circle*{0.05}}
\put(0.09,0.22){\circle*{0.05}}
\end{picture}}
\newsavebox{\tul}
\sbox{\tul}{%
\begin{picture}(1,1)
\put(0.5,0.5){\line(-1,0){0.5}}
\put(0.5,0.5){\line(0,1){0.5}}
\multiput(0,0.5)(0.05,0.05){11}{\circle*{0.05}}
\end{picture}}
\newsavebox{\tur}
\sbox{\tur}{%
\begin{picture}(1,1)
\put(0.5,0.5){\line(1,0){0.5}}
\put(0.5,0.5){\line(0,1){0.5}}
\put(0.5,1){\line(1,-1){0.5}}
\multiput(0.5,1)(0.05,-0.05){11}{\circle*{0.05}}
\end{picture}}
\newsavebox{\tbr}
\sbox{\tbr}{%
\begin{picture}(1,1)
\put(0.5,0.5){\line(1,0){0.5}}
\put(0.5,0.5){\line(0,-1){0.5}}
\put(0.5,0){\line(1,1){0.5}}
\multiput(0.5,0)(0.05,0.05){11}{\circle*{0.05}}
\end{picture}}
\newsavebox{\tbl}
\sbox{\tbl}{%
\begin{picture}(1,1)
\put(0.5,0.5){\line(-1,0){0.5}}
\put(0.5,0.5){\line(0,-1){0.5}}
\put(0,0.5){\line(1,-1){0.5}}
\multiput(0,0.5)(0.05,-0.05){11}{\circle*{0.05}}
\end{picture}}
\newsavebox{\rul}
\sbox{\rul}{%
\begin{picture}(1,1)
\put(0,1){\line(1,0){0.5}}
\put(0,0.5){\line(0,1){0.5}}
\put(0,0.5){\line(1,1){0.5}}
\multiput(0,0.5)(0.05,0.05){11}{\circle*{0.05}}
\end{picture}}
\newsavebox{\rur}
\sbox{\rur}{%
\begin{picture}(1,1)
\put(0.5,1){\line(1,0){0.5}}
\put(1,0.5){\line(0,1){0.5}}
\put(0.5,1){\line(1,-1){0.5}}
\multiput(0.5,1)(0.05,-0.05){11}{\circle*{0.05}}
\end{picture}}
\newsavebox{\rbr}
\sbox{\rbr}{%
\begin{picture}(1,1)
\put(0.5,0){\line(1,0){0.5}}
\put(1,0){\line(0,1){0.5}}
\put(0.5,0){\line(1,1){0.5}}
\multiput(0.5,0)(0.05,0.05){11}{\circle*{0.05}}
\end{picture}}
\newsavebox{\rbl}
\sbox{\rbl}{%
\begin{picture}(1,1)
\put(0,0){\line(1,0){0.5}}
\put(0,0){\line(0,1){0.5}}
\put(0,0.5){\line(1,-1){0.5}}
\multiput(0,0.5)(0.05,-0.05){11}{\circle*{0.05}}
\end{picture}}
\newsavebox{\tuul}
\sbox{\tuul}{%
\begin{picture}(1,1)
\put(0,0.5){\line(1,0){1}}
\put(1,0.5){\line(0,1){0.5}}
\multiput(0,0.5)(0.05,0.025){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\tuur}
\sbox{\tuur}{%
\begin{picture}(1,1)
\put(0,0.5){\line(1,0){1}}
\put(0,0.5){\line(0,1){0.5}}
\multiput(0,1)(0.05,-0.025){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\tbbl}
\sbox{\tbbl}{%
\begin{picture}(1,1)
\put(0,0.5){\line(1,0){1}}
\put(1,0){\line(0,1){0.5}}
\multiput(0,0.5)(0.05,-0.025){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\tbbr}
\sbox{\tbbr}{%
\begin{picture}(1,1)
\put(0,0.5){\line(1,0){1}}
\put(0,0){\line(0,1){0.5}}
\multiput(0,0)(0.05,0.025){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\tull}
\sbox{\tull}{%
\begin{picture}(1,1)
\put(0.5,0){\line(0,1){1}}
\put(0,0){\line(1,0){0.5}}
\multiput(0,0)(0.025,0.05){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\turr}
\sbox{\turr}{%
\begin{picture}(1,1)
\put(0.5,0){\line(0,1){1}}
\put(0.5,0){\line(1,0){0.5}}
\multiput(0.5,1)(0.025,-0.05){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\tbll}
\sbox{\tbll}{%
\begin{picture}(1,1)
\put(0.5,0){\line(0,1){1}}
\put(0,1){\line(1,0){0.5}}
\multiput(0,1)(0.025,-0.05){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\tbrr}
\sbox{\tbrr}{%
\begin{picture}(1,1)
\put(0.5,0){\line(0,1){1}}
\put(0.5,1){\line(1,0){0.5}}
\multiput(0.5,0)(0.025,0.05){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\ruul}
\sbox{\ruul}{%
\begin{picture}(1,1)
\put(0,1){\line(1,0){0.5}}
\put(0,0){\line(0,1){1}}
\multiput(0,0)(0.025,0.05){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\ruur}
\sbox{\ruur}{%
\begin{picture}(1,1)
\put(0.5,1){\line(1,0){0.5}}
\put(1,0){\line(0,1){1}}
\multiput(0.5,1)(0.025,-0.05){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\rbbl}
\sbox{\rbbl}{%
\begin{picture}(1,1)
\put(0,0){\line(1,0){0.5}}
\put(0,0){\line(0,1){1}}
\multiput(0,1)(0.025,-0.05){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\rbbr}
\sbox{\rbbr}{%
\begin{picture}(1,1)
\put(0.5,0){\line(1,0){0.5}}
\put(1,0){\line(0,1){1}}
\multiput(0.5,0)(0.025,0.05){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\rull}
\sbox{\rull}{%
\begin{picture}(1,1)
\put(0,1){\line(1,0){1}}
\put(0,0.5){\line(0,1){0.5}}
\multiput(0,0.5)(0.05,0.025){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\rurr}
\sbox{\rurr}{%
\begin{picture}(1,1)
\put(0,1){\line(1,0){1}}
\put(1,0.5){\line(0,1){0.5}}
\multiput(0,1)(0.05,-0.025){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\rbll}
\sbox{\rbll}{%
\begin{picture}(1,1)
\put(0,0){\line(1,0){1}}
\put(0,0){\line(0,1){0.5}}
\multiput(0,0.5)(0.05,-0.025){21}{\circle*{0.05}}
\end{picture}}
\newsavebox{\rbrr}
\sbox{\rbrr}{%
\begin{picture}(1,1)
\put(0,0){\line(1,0){1}}
\put(1,0){\line(0,1){0.5}}
\multiput(0,0)(0.05,0.025){21}{\circle*{0.05}}
\end{picture}}
\put(0,-2.75){\dashbox{0.25}(24,24){}}
\put(0,0){\line(1,0){24}}
\put(0,1.25){\usebox{\tul}}\put(0,1.25){\usebox{\sur}}
\put(0,1.25){\usebox{\cbl}}\put(0,1.25){\usebox{\tbr}}
\put(0,2.25){\usebox{\rbr}}\put(0,12.25){\usebox{\cul}}
\put(0,12.25){\usebox{\sur}}\put(0,12.25){\usebox{\cbl}}
\put(0,12.25){\usebox{\sbr}}\put(0,16.25){\usebox{\cul}}
\put(0,16.25){\usebox{\sur}}\put(0,16.25){\usebox{\cbl}}
\put(0,16.25){\usebox{\sbr}}\put(1,1.25){\usebox{\rul}}
\put(1,2.25){\usebox{\tul}}\put(1,2.25){\usebox{\sur}}
\put(1,2.25){\usebox{\sbl}}\put(1,2.25){\usebox{\tbr}}
\put(1,3.25){\usebox{\rbbr}}\put(1,12.25){\usebox{\sss}}
\put(1,16.25){\usebox{\sss}}\put(2,2.25){\usebox{\rul}}
\put(2,3.25){\usebox{\sul}}\put(2,3.25){\usebox{\sur}}
\put(2,3.25){\usebox{\sbl}}\put(2,3.25){\usebox{\tbr}}
\put(2,4.25){\usebox{\tull}}\put(2,4.25){\usebox{\sur}}
\put(2,4.25){\usebox{\sbr}}\put(2,5.25){\usebox{\rbbr}}
\put(2,12.25){\usebox{\sss}}\put(2,16.25){\usebox{\tbbr}}
\put(2,16.25){\usebox{\sul}}\put(2,16.25){\usebox{\sur}}
\put(2,17.25){\usebox{\rbrr}}\put(3,3.25){\usebox{\rul}}
\put(3,4.25){\usebox{\tbrr}}\put(3,4.25){\usebox{\sul}}
\put(3,4.25){\usebox{\sbl}}\put(3,5.25){\usebox{\sss}}
\put(3,6.25){\usebox{\tull}}\put(3,6.25){\usebox{\sur}}
\put(3,6.25){\usebox{\sbr}}\put(3,7.25){\usebox{\rbbr}}
\put(3,12.25){\usebox{\sss}}\put(3,16.25){\usebox{\rull}}
\put(3,17.25){\usebox{\tuul}}\put(3,17.25){\usebox{\sbl}}
\put(3,17.25){\usebox{\sbr}}\put(4,5.25){\usebox{\rul}}
\put(4,5.25){\usebox{\rur}}\put(4,6.25){\usebox{\sss}}
\put(4,7.25){\usebox{\sss}}\put(4,8.25){\usebox{\sss}}
\put(4,9.25){\usebox{\tull}}\put(4,9.25){\usebox{\sur}}
\put(4,9.25){\usebox{\sbr}}\put(4,10.25){\usebox{\rbbr}}
\put(4,11.25){\usebox{\rur}}\put(4,12.25){\usebox{\sss}}
\put(4,13.25){\usebox{\rbr}}\put(4,16.25){\usebox{\rur}}
\put(4,17.25){\usebox{\sss}}\put(5,-2.75){\usebox{\sul}}
\put(5,-2.75){\usebox{\sur}}\put(5,-2.75){\usebox{\cbl}}
\put(5,-2.75){\usebox{\sbr}}\put(5,-1.75){\usebox{\sss}}
\put(5,-0.75){\usebox{\sss}}\put(5,0.25){\usebox{\sss}}
\put(5,1.25){\usebox{\sss}}\put(5,2.25){\usebox{\sss}}
\put(5,3.25){\usebox{\sss}}\put(5,4.25){\usebox{\sss}}
\put(5,5.25){\usebox{\sss}}\put(5,6.25){\usebox{\sss}}
\put(5,7.25){\usebox{\sss}}\put(5,8.25){\usebox{\sss}}
\put(5,9.25){\usebox{\sss}}\put(5,10.25){\usebox{\sss}}
\put(5,11.25){\usebox{\sss}}\put(5,12.25){\usebox{\sss}}
\put(5,13.25){\usebox{\sss}}\put(5,14.25){\usebox{\sss}}
\put(5,15.25){\usebox{\sss}}\put(5,16.25){\usebox{\sss}}
\put(5,17.25){\usebox{\sss}}\put(5,18.25){\usebox{\rbrr}}
\put(6,-2.75){\usebox{\sul}}\put(6,-2.75){\usebox{\sur}}
\put(6,-2.75){\usebox{\sbl}}\put(6,-2.75){\usebox{\cbr}}
\put(6,-1.75){\usebox{\sss}}\put(6,-0.75){\usebox{\sss}}
\put(6,0.25){\usebox{\sss}}\put(6,1.25){\usebox{\sss}}
\put(6,2.25){\usebox{\sss}}\put(6,3.25){\usebox{\sss}}
\put(6,4.25){\usebox{\sss}}\put(6,5.25){\usebox{\sss}}
\put(6,6.25){\usebox{\sss}}\put(6,7.25){\usebox{\sss}}
\put(6,8.25){\usebox{\sss}}\put(6,9.25){\usebox{\sss}}
\put(6,10.25){\usebox{\sss}}\put(6,11.25){\usebox{\sss}}
\put(6,12.25){\usebox{\sss}}\put(6,13.25){\usebox{\sss}}
\put(6,14.25){\usebox{\sss}}\put(6,15.25){\usebox{\sss}}
\put(6,16.25){\usebox{\sss}}\put(6,17.25){\usebox{\sss}}
\put(6,18.25){\usebox{\tuul}}\put(6,18.25){\usebox{\sbl}}
\put(6,18.25){\usebox{\sbr}}\put(7,7.25){\usebox{\rul}}
\put(7,8.25){\usebox{\sss}}\put(7,9.25){\usebox{\rbl}}
\put(7,11.25){\usebox{\rul}}\put(7,12.25){\usebox{\sss}}
\put(7,13.25){\usebox{\rbl}}\put(7,17.25){\usebox{\rul}}
\put(7,18.25){\usebox{\sss}}\put(7,19.25){\usebox{\rbrr}}
\put(8,7.25){\usebox{\rurr}}\put(8,8.25){\usebox{\tuur}}
\put(8,8.25){\usebox{\sbl}}\put(8,8.25){\usebox{\sbr}}
\put(8,12.25){\usebox{\sss}}\put(8,13.25){\usebox{\rbrr}}
\put(8,18.25){\usebox{\tbbr}}\put(8,18.25){\usebox{\sul}}
\put(8,18.25){\usebox{\sur}}\put(8,19.25){\usebox{\tul}}
\put(8,19.25){\usebox{\sur}}\put(8,19.25){\usebox{\sbl}}
\put(8,19.25){\usebox{\sbr}}\put(8,20.25){\usebox{\rbr}}
\put(9,-1.75){\usebox{\ruur}}\put(9,-0.75){\usebox{\cul}}
\put(9,-0.75){\usebox{\sur}}\put(9,-0.75){\usebox{\tbl}}
\put(9,-0.75){\usebox{\sbr}}\put(9,6.25){\usebox{\ruur}}
\put(9,7.25){\usebox{\sul}}\put(9,7.25){\usebox{\sur}}
\put(9,7.25){\usebox{\tbl}}\put(9,7.25){\usebox{\sbr}}
\put(9,8.25){\usebox{\rbll}}\put(9,12.25){\usebox{\sss}}
\put(9,13.25){\usebox{\tuul}}\put(9,13.25){\usebox{\sbl}}
\put(9,13.25){\usebox{\sbr}}\put(9,18.25){\usebox{\rull}}
\put(9,19.25){\usebox{\sss}}\put(9,20.25){\usebox{\tuul}}
\put(9,20.25){\usebox{\sbl}}\put(9,20.25){\usebox{\sbr}}
\put(10,-2.75){\usebox{\sul}}\put(10,-2.75){\usebox{\sur}}
\put(10,-2.75){\usebox{\cbl}}\put(10,-2.75){\usebox{\tbr}}
\put(10,-1.75){\usebox{\sss}}\put(10,-0.75){\usebox{\sss}}
\put(10,5.25){\usebox{\sul}}\put(10,5.25){\usebox{\sur}}
\put(10,5.25){\usebox{\cbl}}\put(10,5.25){\usebox{\sbr}}
\put(10,6.25){\usebox{\sss}}\put(10,7.25){\usebox{\tuur}}
\put(10,7.25){\usebox{\sbl}}\put(10,7.25){\usebox{\sbr}}
\put(10,12.25){\usebox{\sss}}\put(10,13.25){\usebox{\tuur}}
\put(10,13.25){\usebox{\sbl}}\put(10,13.25){\usebox{\sbr}}
\put(10,19.25){\usebox{\sss}}\put(10,20.25){\usebox{\tuur}}
\put(10,20.25){\usebox{\sbl}}\put(10,20.25){\usebox{\sbr}}
\put(11,-2.75){\usebox{\rull}}\put(11,-1.75){\usebox{\sss}}
\put(11,-0.75){\usebox{\sss}}\put(11,5.25){\usebox{\sul}}
\put(11,5.25){\usebox{\sur}}\put(11,5.25){\usebox{\sbl}}
\put(11,5.25){\usebox{\cbr}}\put(11,6.25){\usebox{\turr}}
\put(11,6.25){\usebox{\sul}}\put(11,6.25){\usebox{\sbl}}
\put(11,7.25){\usebox{\rbl}}\put(11,12.25){\usebox{\sul}}
\put(11,12.25){\usebox{\tur}}\put(11,12.25){\usebox{\sbl}}
\put(11,12.25){\usebox{\cbr}}\put(11,13.25){\usebox{\rbl}}
\put(11,19.25){\usebox{\sul}}\put(11,19.25){\usebox{\tur}}
\put(11,19.25){\usebox{\sbl}}\put(11,19.25){\usebox{\cbr}}
\put(11,20.25){\usebox{\rbl}}\put(12,-1.75){\usebox{\sss}}
\put(12,-0.75){\usebox{\sss}}\put(12,0.25){\usebox{\rbr}}
\put(13,-1.75){\usebox{\tbbr}}\put(13,-1.75){\usebox{\sul}}
\put(13,-1.75){\usebox{\sur}}\put(13,-0.75){\usebox{\sss}}
\put(13,0.25){\usebox{\sss}}\put(13,1.25){\usebox{\tull}}
\put(13,1.25){\usebox{\sur}}\put(13,1.25){\usebox{\sbr}}
\put(13,2.25){\usebox{\rbbr}}\put(14,-1.75){\usebox{\rull}}
\put(14,-0.75){\usebox{\sss}}\put(14,0.25){\usebox{\rbl}}
\put(14,1.25){\usebox{\ruul}}\put(14,2.25){\usebox{\tbrr}}
\put(14,2.25){\usebox{\sul}}\put(14,2.25){\usebox{\sbl}}
\put(14,3.25){\usebox{\sss}}\put(14,4.25){\usebox{\sss}}
\put(14,5.25){\usebox{\tull}}\put(14,5.25){\usebox{\sur}}
\put(14,5.25){\usebox{\sbr}}\put(14,6.25){\usebox{\rbbr}}
\put(15,-0.75){\usebox{\sss}}\put(15,3.25){\usebox{\ruul}}
\put(15,4.25){\usebox{\tbrr}}\put(15,4.25){\usebox{\sul}}
\put(15,4.25){\usebox{\sbl}}\put(15,5.25){\usebox{\sss}}
\put(15,6.25){\usebox{\sss}}\put(15,7.25){\usebox{\sss}}
\put(15,8.25){\usebox{\sss}}\put(15,9.25){\usebox{\sss}}
\put(15,10.25){\usebox{\sss}}\put(15,11.25){\usebox{\sss}}
\put(15,12.25){\usebox{\tull}}\put(15,12.25){\usebox{\sur}}
\put(15,12.25){\usebox{\sbr}}\put(15,13.25){\usebox{\rbbr}}
\put(16,-0.75){\usebox{\sss}}\put(16,7.25){\usebox{\ruul}}
\put(16,8.25){\usebox{\tbrr}}\put(16,8.25){\usebox{\sul}}
\put(16,8.25){\usebox{\sbl}}\put(16,9.25){\usebox{\sss}}
\put(16,10.25){\usebox{\sss}}\put(16,11.25){\usebox{\sss}}
\put(16,12.25){\usebox{\sss}}\put(16,13.25){\usebox{\sss}}
\put(16,14.25){\usebox{\sss}}\put(16,15.25){\usebox{\sss}}
\put(16,16.25){\usebox{\sss}}\put(16,17.25){\usebox{\sss}}
\put(16,18.25){\usebox{\sss}}\put(16,19.25){\usebox{\sss}}
\put(16,20.25){\usebox{\cul}}\put(16,20.25){\usebox{\tur}}
\put(16,20.25){\usebox{\sbl}}\put(16,20.25){\usebox{\sbr}}
\put(17,-0.75){\usebox{\tbbr}}\put(17,-0.75){\usebox{\sul}}
\put(17,-0.75){\usebox{\sur}}\put(17,0.25){\usebox{\rbrr}}
\put(17,12.25){\usebox{\ruul}}\put(17,13.25){\usebox{\tbrr}}
\put(17,13.25){\usebox{\sul}}\put(17,13.25){\usebox{\sbl}}
\put(17,14.25){\usebox{\sss}}\put(17,15.25){\usebox{\sss}}
\put(17,16.25){\usebox{\sss}}\put(17,17.25){\usebox{\sss}}
\put(17,18.25){\usebox{\sss}}\put(17,19.25){\usebox{\sss}}
\put(17,20.25){\usebox{\rbll}}\put(18,-0.75){\usebox{\rull}}
\put(18,0.25){\usebox{\tuul}}\put(18,0.25){\usebox{\sbl}}
\put(18,0.25){\usebox{\sbr}}\put(18,18.25){\usebox{\ruul}}
\put(18,19.25){\usebox{\sul}}\put(18,19.25){\usebox{\cur}}
\put(18,19.25){\usebox{\sbl}}\put(18,19.25){\usebox{\tbr}}
\put(19,0.25){\usebox{\sss}}\put(19,3.25){\usebox{\ruur}}
\put(19,4.25){\usebox{\cul}}\put(19,4.25){\usebox{\tur}}
\put(19,4.25){\usebox{\tbl}}\put(19,4.25){\usebox{\sbr}}
\put(20,0.25){\usebox{\sss}}\put(20,1.25){\usebox{\ruur}}
\put(20,1.25){\usebox{\rbr}}\put(20,2.25){\usebox{\tbll}}
\put(20,2.25){\usebox{\sur}}\put(20,2.25){\usebox{\sbr}}
\put(20,3.25){\usebox{\sul}}\put(20,3.25){\usebox{\tur}}
\put(20,3.25){\usebox{\sbl}}\put(20,3.25){\usebox{\sbr}}
\put(20,4.25){\usebox{\rbl}}\put(21,-0.75){\usebox{\rur}}
\put(21,0.25){\usebox{\sss}}\put(21,1.25){\usebox{\sss}}
\put(21,2.25){\usebox{\sul}}\put(21,2.25){\usebox{\tur}}
\put(21,2.25){\usebox{\sbl}}\put(21,2.25){\usebox{\sbr}}
\put(21,3.25){\usebox{\rbl}}\put(22,-2.75){\usebox{\sul}}
\put(22,-2.75){\usebox{\sur}}\put(22,-2.75){\usebox{\cbl}}
\put(22,-2.75){\usebox{\sbr}}\put(22,-1.75){\usebox{\sss}}
\put(22,-0.75){\usebox{\sss}}\put(22,0.25){\usebox{\sss}}
\put(22,1.25){\usebox{\turr}}\put(22,1.25){\usebox{\sul}}
\put(22,1.25){\usebox{\sbl}}\put(22,2.25){\usebox{\rbl}}
\put(23,-2.75){\usebox{\sul}}\put(23,-2.75){\usebox{\sur}}
\put(23,-2.75){\usebox{\sbl}}\put(23,-2.75){\usebox{\cbr}}
\put(23,-1.75){\usebox{\sss}}\put(23,-0.75){\usebox{\turr}}
\put(23,-0.75){\usebox{\sul}}\put(23,-0.75){\usebox{\sbl}}
\put(23,0.25){\usebox{\rbbl}}
\sbox{\sss}{}
\sbox{\sul}{}\sbox{\sur}{}\sbox{\sbr}{}\sbox{\sbl}{}
\sbox{\cul}{}\sbox{\cur}{}\sbox{\cbr}{}\sbox{\cbl}{}
\sbox{\tul}{}\sbox{\tur}{}\sbox{\tbr}{}\sbox{\tbl}{}
\sbox{\rul}{}\sbox{\rur}{}\sbox{\rbr}{}\sbox{\rbl}{}
\sbox{\tuul}{}\sbox{\tuur}{}\sbox{\tbbl}{}\sbox{\tbbr}{}
\sbox{\tull}{}\sbox{\turr}{}\sbox{\tbll}{}\sbox{\tbrr}{}
\sbox{\ruul}{}\sbox{\ruur}{}\sbox{\rbbl}{}\sbox{\rbbr}{}
\sbox{\rull}{}\sbox{\rurr}{}\sbox{\rbll}{}\sbox{\rbrr}{}
\end{picture}}
\end{picture}
\end{center}
\caption{Bitmap and Continuous Character.}
\label{bitmapandcontinuouscharacter}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{The \LLaTeX\ Interface}
\typeout{3 The [La]TeX Interface}
\label{thelatexinterface}
The next challenge is to make \LLaTeX\ understand the output of a japanese text
editor. There seems to be three ways of achieving this. First, one can modify
the input routines of \TeX\ and recompile it. This is the approach used by
J\TeX\ and \mbox{ASCII-j\TeX}. For the reasons mentioned in
Subsection~\ref{whyjemtex}, I do not want to get into rebuilding \TeX.
A second possibility is to write macros to have \TeX\ understand japanese.
Unfortunately, I do not have the expertise to do that.
The third possibility is to write a preprocessor to transform any japanese
document into a standard \LLaTeX\ one. And I do know enough about japanese and
\TeX\ to accomplish this. This important decision has several consequences. If
I am to have the power of any programming language available somewhere in the
chain from a japanese text to a final \LLaTeX\ document, I might as well fully
exploit that power. As much as possible of the work should be done by the
compiled preprocessor, keeping the necessary interpreted \LLaTeX\ macros simple
and fast. This philosophy is present in many aspects of my work.
\newpage %improve a bad page break
The \JemTeX\ preprocessor deals with the following issues:
\begin{itemize}
\item Loading and calling \JemTeX\ fonts.
\item Japanese hyphenation.
\item Japanese spacing.
\end{itemize}
The next subsections will discuss these topics and related subjects, before
eventually taking up the actual operation of the preprocessor.
\subsection{Japanese Encodings}
\label{japaneseencodings}
The reasonable thing to do at this point is to look into how japanese is
represented by a japanese text editor. The first method I came across is the
Japanese Industrial Standard (JIS). Unfortunately, my japanese text editor is
very unreliable in JIS mode and this is why I never use it in this mode. I also
do not know exactly how JIS works, but I do know that it involves escape
sequences. I will be happy to support it in future versions of \JemTeX\, if
users express that need and if somebody gives me more information about it.
\label{euc}
The second method is the Extended UNIX Code (EUC). I like it because it is the
only encoding that my japanese text editor handles reliably. Each japanese
character is represented by a pair of ASCII characters in the range
$[161,\ldots,254]$. Given an EUC character $(x,y)$, its position in the JIS~24
dot font is simply:
\[ 94 \times ( x - 161 ) + ( y - 161 ) + 1 \]
\label{mskanji}
A third method is the \mbox{MS-kanji} (\mbox{Shift-JIS}) code which is very
popular in the DOS world. As for EUC, each japanese character is represented by
a pair of ASCII characters. The first character is always in the range
$[129,\ldots,159,224,\ldots,234]$ and the second character is always in the
range $[64,\ldots,126,128,\ldots,252]$. Given an \mbox{MS-kanji} character,
consider the coordinates $(x,y)$ obtained by shifting the upper subranges so
that they are consecutive to the lower subranges, the position of the character
in the JIS~24 dot font then is:
\[ 188 \times ( x - 129 ) + ( y - 64 ) + 1 \]
The preprocessor supports EUC and \mbox{MS-kanji}. You may freely use both in
any \JemTeX\ document.
\subsection{Using Fonts}
\label{usingfonts}
This subsection covers all the details having to do with \JemTeX\ fonts.
One of the operation carried out by the preprocessor is the replacement of any
EUC or \mbox{MS-kanji} character pair by the appropriate font name and symbol
number. However, all \JemTeX\ fonts must first be declared in a \LLaTeX\ header
before they can be used.
\label{header}
In \LaTeX, a \JemTeX\ font at magstep~$3.0$, say, is loaded with the following
command:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
\newfont{\keac}{kanjiac scaled 1728}
\end{verbatim}
\end{quote}
In \TeX, it is loaded with:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
\font\keac=kanjiac scaled 1728
\end{verbatim}
\end{quote}
The \JemTeX\ font is referred to by \verb"\keac", which is a convenient short
name. The number $1728$ comes from $1728 = 1000 \times 1.2^{3.0}$.
The preprocessor scans the input file in a first pass and determines the
\JemTeX\ fonts needed. It then writes a \LLaTeX\ header to load these fonts,
and finally appends the translation obtained by a second pass of the input
file.
There are at most 128~symbols numbered from~0 to~127 in a \JemTeX\ font. A
japanese symbol can be produced in \TeX\ and in \LaTeX\ with the following
command:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
\kk{\keac}{65}
\end{verbatim}
\end{quote}
The preprocessor will supply these automatically for you.
\subsection{Hyphenation}
\label{hyphenation}
In order to produce a right margin which is even, \TeX\ occasionally needs to
hyphenate some words. Although it is pretty good at this in english, \TeX\ is
incapable of doing it in japanese. Therefore, the preprocessor must supply
explicitly all possible hyphenation locations for \TeX. This subsection
describes the rules governing this process.
\label{hyphen}
Hyphenation is relevant only between two consecutive characters. Hyphenation in
english is obtained with a \verb"\-" command. In japanese, it is obtained with
a \verb"\hh" command. The preprocessor will never allow japanese hyphenation
between two characters when one or both are roman. But if the two characters
are japanese, it may insert a \verb"\hh" command in between. Contrary to
english, no - gets appended at the end of a line hyphenated by a \verb"\hh"
command.
All japanese characters encountered are classified as {\em alphabetical\/} or
{\em symbolic}. The alphabetical japanese characters are hiraganas, katakanas,
and kanjis. All other japanese characters found in the JIS~24 dot font are
symbolic, they include punctuation signs, english, greek, and russian
characters.
This classification is important because it is difficult for the \JemTeX\
preprocessor to automatically decide where to allow hyphenation when
mathematics or foreign languages are concerned. Consequently, the preprocessor
never allows hyphenation between two japanese characters when both are
symbolic. But if one or both japanese characters are alphabetical, hyphenation
may be allowed since one can hyphenate anywhere in japanese, except possibly
when punctuation signs are involved. This is not too difficult to handle for
the preprocessor.
More precisely, the preprocessor will not allow hyphenation before the
following japanese punctuation signs .,!?:;$\cdot)]\}\rfloor\rangle$'\,'' and
other related closing characters. It will not allow hyphenation either after
$([\{\lceil\langle$`\,`` and other related opening characters.
\label{preventh}
If you would like to allow japanese hyphenation where the preprocessor would
not allow it, simply put a \verb"\hh" command at the right place in your
source file. If the next character is a roman letter, you have to use instead
\verb"\hh{}" to prevent confusion. If you would like to prevent the
preprocessor from allowing japanese hyphenation, put a \verb"{}" to separate
the two consecutive japanese characters in your source file. The preprocessor
will not realize that the japanese characters are consecutive anymore, and it
will not allow hyphenation.
\subsection{Spacing}
\label{spacing}
In addition to explicitly telling \TeX\ where japanese hyphenation is allowed,
it is also necessary to add space around some japanese characters. For example,
this occurs around japanese punctuation signs or at transitions from japanese
to roman. Indeed, when \TeX\ comes across the command \verb"\kk{\kaaa}{3}", it
has no idea that this is a japanese period. The preprocessor has to give \TeX\
a hand in these cases. Such space must always be added after any hyphenation
command \verb"\hh" that may already have been inserted. Otherwise, you risk
compromising the flush right margin.
\TeX\ normally introduces extra space after a roman period only if a roman
space follows it. My japanese text editor does not support spaces while in
japanese mode. After all, there are no spaces between words in japanese. This
implies that one would have to enter, say, a japanese period, then switch to
roman mode, enter a space, and finally switch back to japanese mode. I think
this is too cumbersome. Therefore, the preprocessor handles japanese spacing
issues without expecting roman spaces anywhere.
\label{bigmedium}
The preprocessor uses three types of space to achieve its goal; a big space
with a \verb"\eeee" command, a medium space with a \verb"\eee" command, and a
tiny space with a \verb"\ee" command. Only one space is added at one place. For
example, if logic calls for a big, a medium, and a medium space between two
consecutive characters, only a big one will be inserted by the preprocessor.
No space is ever added between two consecutive roman characters, but as soon as
one or both characters are japanese, space may become necessary. Let us first
look at the mixed case where one japanese character is involved with a roman
one. A big space is inserted after all japanese punctuation signs .,!?\
followed by a roman character. A medium space is inserted after all japanese
punctuation signs :;$\cdot)]\}\rfloor\rangle$'\,'' followed by a roman
character. A medium space is also inserted after all roman characters followed
by any of the japanese punctuation signs $\cdot([\{\lceil\langle$`\,``.
This takes care of the japanese punctuation spaces. Space is also added for
transitions as follows. A medium space is inserted after all roman letters and
all roman digits followed by a japanese character, except if that japanese
character is any of the following punctuation signs
.,!?:;$)]\}\rfloor\rangle$'\,''. A medium space is also inserted after a
japanese character followed by a roman letter or a roman digit, except if that
japanese character is any of the following punctuation signs
$([\{\lceil\langle$`\,``.
The case of two consecutive japanese characters is more precise since more
information is known. It is also closely related to the previous mixed case.
A big space is inserted after all japanese punctuation signs .,!? but not
before any of the japanese punctuation signs .,!?$)]\}\rfloor\rangle$'\,''.
A medium space is inserted after all japanese punctuation signs
:;$\cdot)]\}\rfloor\rangle$'\,'' but not before any of the japanese punctuation
signs .,!?:;$)]\}\rfloor\rangle$'\,''. A medium space is also inserted before
all the japanese punctuation signs $\cdot([\{\lceil\langle$`\,`` but not after
any of the japanese punctuation signs $([\{\lceil\langle$`\,``.
This covers all cases of big and medium spaces. If you would like to add space
where the preprocessor would not, simply put a \verb"\eeee" command or a
\verb"\eee" command at the right place in your source file. Remember to do that
only after any hyphenation \verb"\hh" command that you may already have added.
If the next character is a roman letter, you have to use instead \verb"\eeee{}"
and \verb"\eee{}" to prevent confusion.
\label{prevents}
There are cases where it is preferable to have no extra space after a japanese
punctuation sign. For example, when typesetting music with \MuTeX, one does not
want extra space if the japanese text is going under the staff. This affects
adversary its centering under notes. If you would like to prevent the
preprocessor from adding space, try to put a \verb"{}" at the right place to
separate the two consecutive japanese characters, or the japanese character
from the roman letter or the roman digit. In the few remaining cases where this
cannot work, you have to temporarily disable the preprocessor's ability to add
spaces. Subsection~\ref{thejem2texpreprocessor} explains how to do this.
Tiny space has to do with line breaking, and it is very important. \TeX\
creates a flush right margin by adding extra space between words. However,
\TeX\ does not add extra space between characters making up words. Since words
in japanese are not separated by spaces, the only opportunity \TeX\ has to add
extra space is where big and medium spaces have been added by the preprocessor.
Some long japanese sentence may span several lines without any added space.
\TeX\ then has no opportunity at all to stretch space in order to generate a
flush right margin.
To solve this serious problem, a tiny space is added between all consecutive
japanese characters, unless some big or medium space has already been inserted.
If you should ever want to disable this feature, proceed as before by inserting
a \verb"{}" at the right place. This will always work.
\subsection{\LLaTeX\ Comments}
\label{llatexcomments}
It is quite clear from the previous two subsections that the concept of
consecutive characters is very important for the preprocessor. This notion is
closely related to \LLaTeX\ comments and end of lines. Let us first discuss the
english case before moving on to the japanese one.
\newpage %improve a bad page break
In most circumstances, the character \verb"%" tells \TeX\ to consider the
remainder of the current line as a comment and to simply ignore it. Consider
the following example:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
A% Here is a TeX comment.
% Here is a TeX comment.
B% Here is a TeX comment.
\end{verbatim}
\end{quote}
Even though \verb"A" and \verb"B" are not at all consecutive in the source file
because of the comments separating them, they are consecutive as far as \TeX\
is concerned. One could equally well have entered instead \verb"AB" without any
comments in between.
Consider now another example:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
\end{verbatim}
\end{quote}
The characters \verb"A" and \verb"B" are not consecutive because they are
separated by an invisible end of line character. \TeX\ treats an end of line
character just like if a space was present between \verb"A" and \verb"B".
These remarks apply equally well if \verb"A" and \verb"B" were japanese
characters. To distinguish both types of end of line, I will say that an end of
line is roman if the last character on that line is a roman character. A
similar definition holds for japanese end of lines. It is important for the
preprocessor to determine if japanese characters are consecutive in order to
allow hyphenation and add space correctly. The remainder of this subsection
explains how this is achieved.
In english, any given input line usually terminates just after a word. The end
of line character after that word is replaced by a space by \TeX, which is
perfectly acceptable since a space should separate english words. In japanese,
there is no space between words, so this end of line character must be removed
to prevent \TeX\ from adding space. There are two ways of doing this while
using \JemTeX.
\label{eol}
First, you can explicitly put a \verb"%" after all japanese end of lines. This
will always work, but it is also tedious. Second, you can let the preprocessor
do that for you. However, you should make sure your input lines do end with a
japanese character, not a roman space character. This can be a problem because
some text editors insist on putting some space characters at the end of each
line. You should make sure that your text editor does not do so. Then, the
\JemTeX\ preprocessor will have no problem in detecting japanese end of lines
and will add all the \verb"%" characters for you.
It is also important for the preprocessor to detect \TeX\ comments. The
preprocessor recognizes a comment if it starts in the first column of the input
file, or if it's a comment that the processor had to insert itself, i.e.\ after
a japanese end of line. Therefore, when typing the japanese parts of your
source file, you should always use comments starting in the first column and
let the preprocessor handle japanese end of lines. This makes it almost certain
that the preprocessor will handle hyphenation and spacing correctly.
\subsection{\LLaTeX\ Limitations}
\label{llatexlimitations}
The previous subsections introduced the different operations that the \JemTeX\
preprocessor must perform in order to produce an acceptable \LLaTeX\ document
from a japanese one. Each japanese character is replaced by a command like
\verb"\kk{\kaaa}{109}" potentially followed by an hyphenation command
\verb"\hh" and potentially followed by a spacing command like \verb"\eeee{}".
In the worst case, the two characters representing the original japanese one
are replaced by approximately 25~roman characters.
This expansion of the source file could cause some problems because there is a
limit to the maximum length of an input line that \TeX\ can accept. Here are
typical statistics for one big \emTeX\ run:
\begin{small}%Don't put spaces after the next line!
\begin{verbatim}
Here is how much of TeX's memory you used:
181 strings out of 6937
1607 string characters out of 28560
83907 words of memory out of 262142
2145 multiletter control sequences out of 5000
20585 words of font info for 79 fonts, out of 81920 for 254
15 hyphenation exceptions out of 607
13i,8n,21p,321b,309s positions out of 300i,100n,60p,3000b,1000s
\end{verbatim}
\end{small}
The last line (\verb"3000b") tells us that big \emTeX\ can accept input lines
of 3000~roman characters. Therefore, big \emTeX\ can handle lines of
approximately 120~japanese characters. Most monitors support only~40, 80, or
132~characters per line, that should be enough. However, some japanese text
editors display text on separate lines while whole paragraphs are actually kept
on one single line internally. You should make sure that your japanese text
editor does split its paragraphs into lines of a reasonable size.
The only potential remaining problem has to do with the \verb".toc" and
\verb".aux" files. These files are created by \LaTeX\ for its personal use and
contain such things as chapter names, cross-references, etc. These are always
formatted one item per line. If you have a chapter name which is longer than
120~japanese characters, you can split it on several lines in your source file.
Then, \LaTeX\ will have no problem with the title itself. But in its first
pass, it will create the \verb".toc" and \verb".aux" files which will have a
very long line. When \LaTeX\ starts to read the resulting \verb".aux" file on
its second pass, it will complain that the line is too long and stop. I think
it is unlikely that you will ever have such a long chapter name. But if you do,
here is my solution.
Suppose your \verb".aux" file contains one long line of japanese text:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
\@writefile{toc}{Very long japanese text.}
\end{verbatim}
\end{quote}
Edit the \verb".aux" file and replace the troublesome line by:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
\@writefile{toc}{\texta \textb \textc \textd}
\end{verbatim}
\end{quote}
And add the following macros to your \LaTeX\ source file:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
\newcommand{\texta}{Very}
\newcommand{\textb}{long}
\newcommand{\textc}{japanese}
\newcommand{\textd}{text.}
\end{verbatim}
\end{quote}
Having done all that, you may now successfully run \LaTeX\ once.
Unfortunately, this run will modify your \verb".aux" file again. There are two
ways around this. First, you could use the \LaTeX\ command \verb"\nofiles".
Secondly, you could edit your \verb".aux" once again. As I already mentioned,
it is unlikely that you will ever need to resort to this trick since the
current limit of 120~japanese characters is quite reasonable. But if you are
curious, that's how you can avoid the problem.
\subsection{The {\tt JEM2TEX} Preprocessor}
\label{thejem2texpreprocessor}
Given a japanese source file, my program \verb"JEM2TEX" can generate an
equivalent \LLaTeX\ source file. You have been supplied with the source and the
compressed compiled version of this C program. The only information necessary
is the source file name and some parameters. \verb"JEM2TEX" will try the file
name extensions \verb".jem", \verb".jpn", and \verb".jap" for you so you do not
need to specify them.
If you simply start \verb"JEM2TEX" without any command line information, it
will run in manual mode where you must answer questions interactively
throughout the operation. If you specify any command line information, the
preprocessor then runs in automatic mode. In addition to specifying the source
file name on the command line, you can also supply command line parameters on
it. These always begin with a \verb"/" or a \verb"-", and any combination of
small and capital letters is acceptable.
In automatic mode, a \LaTeX\ document \verb"japanese.jem" with japanese
extended EUC characters at magstep~$3.0$, and with spaces to add, and with
\verb"%" to add at japanese end of lines is assumed as default. However, you
may override or confirm any of these default values with the appropriate
command line parameters. The recognized ones are listed in
Tables~\ref{spaceparameters}, \ref{japaneseeolparameters},
\ref{encodingparameters}, \ref{fontsizeparameters}, and~\ref{headerparameters}.
\begin{table}[htb]
\begin{center}
\begin{tabular}{ll}
\mbox{$\left.\parbox{3cm}{%
\verb"/Space" \\
\verb"/Extra" \\
\verb"/ExtraSpace"}\right\}$} & Spaces added. \\[5.5mm]
\mbox{$\left.\parbox{3cm}{%
\verb"/NoSpace" \\
\verb"/NoExtra" \\
\verb"/NoExtraSpace"}\right\}$} & No spaces added.
\end{tabular}
\end{center}
\caption{Space Parameters.}
\label{spaceparameters}
\begin{center}
\begin{tabular}{ll}
\mbox{$\left.\parbox{2.3cm}{%
\verb"/EOL" \\
\verb"/Percent" \\
\verb"/Comment"}\right\}$} & \verb"%" added. \\[6.5mm]
\mbox{$\left.\parbox{2.3cm}{%
\verb"/NoEOL" \\
\verb"/NoPercent" \\
\verb"/NoComment"}\right\}$} & No \verb"%" added.
\end{tabular}
\end{center}
\caption{Japanese EOL Parameters.}
\label{japaneseeolparameters}
\end{table}
\newpage %improve a bad page break
\begin{table}[htb]
\begin{center}
\begin{tabular}{ll}
\parbox{2.2cm}{\verb"/EUC"} & Extended UNIX code. \\[1.5mm]
\mbox{$\left.\parbox{2.2cm}{%
\verb"/MSkanji" \\
\verb"/ShiftJIS"}\right\}$} & MS-kanji code. \\[2.5mm]
\parbox{2.2cm}{\verb"/Extended"} & Extended characters. \\
\parbox{2.2cm}{\verb"/Standard"} & Standard characters.
\end{tabular}
\end{center}
\caption{Encoding Parameters.}
\label{encodingparameters}
\begin{center}
\begin{tabular}{ll}
\mbox{$\left.\parbox{3cm}{%
\verb"/1000 /0.0 /0" \\
\verb"/1095 /0.5" \\
\verb"/1200 /1.0 /1" \\
\verb"/1440 /2.0 /2" \\
\verb"/1728 /3.0 /3" \\
\verb"/2074 /4.0 /4" \\
\verb"/2488 /5.0 /5"}\right\}$} & Initial japanese font size.
\end{tabular}
\end{center}
\caption{Font Size Parameters.}
\label{fontsizeparameters}
\begin{center}
\begin{tabular}{ll}
\parbox{1.5cm}{\verb"/LaTeX"} & \LaTeX\ header. \\[1mm]
\mbox{$\left.\parbox{1.5cm}{%
\verb"/TeX" \\
\verb"/MuTeX"}\right\}$} & \TeX\ header.
\end{tabular}
\end{center}
\caption{Header Parameters.}
\label{headerparameters}
\end{table}
For music, I usually use only hiraganas and katakanas. The following is
appropriate since these japanese characters are simple:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
jem2tex anri /MuTeX /NoEOL /NoSpace /Standard /EUC /0.5
\end{verbatim}
\end{quote}
For a letter with complicated kanjis, I would rather use:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
jem2tex yuka /LaTeX /EOL /Space /Extended /EUC /2
\end{verbatim}
\end{quote}
It is also possible to change these parameters at run-time with \TeX\ comments.
Here is an example:
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
% jem2tex /LaTeX /Space /EOL /MSkanji /1440
\end{verbatim}
\end{quote}
The preprocessor expects the \verb"%" to be the first character of the line as
explained in Subsection~\ref{llatexcomments}. Then one of the keywords
\verb"jem2tex", \verb"jpn2tex", or~\verb"jap2tex" must follow immediately, or
after some spaces. Valid parameters are then scanned. The preprocessor will
produce comments in the \LLaTeX\ file as its status is changed. An invalid
parameter stops the current scan for parameters, but does not terminate the
preprocessor's operation.
\label{nospaces}
\label{fonts}
Run-time parameters can be used to change japanese font sizes according to
environments and to temporarily disable space insertion. I also always put in
the first line of my \verb".jem" files the initial parameters. Here is an
example:
\begin{quote}
\verb"%JEM2TEX /Space /EOL /Extended /EUC /LaTeX" \\
\verb"\documentstyle[12pt]{tegami}" \\
\verb"\begin{document}" \\
\verb"\begin{large}" \\
\verb"%JEM2TEX /1440" \\
$\vdots$ \\
\verb"Here is some japanese text" \\
\verb"%JEM2TEX /1000" \\
\verb"\footnote{Japanese footnote.}%" \\
\verb"%JEM2TEX /1440" \\
\verb"with a footnote showing the font size change." \\
$\vdots$ \\
\verb"\end{large}" \\
\verb"\end{document}"
\end{quote}
\label{12points}
As mentioned in the \LaTeX\ book about loading fonts, using a japanese font
doesn't change style parameters like \verb"\baselineskip". Make sure the
appropriate size changing command is active when a japanese font is used. In
the previous example, the \verb"/1440" indicates that magstep~$2.0$ is desired
for the japanese fonts. The command \verb"large" insures that \LaTeX\ is aware
of the proper line spacing needed while processing these japanese characters.
The command \verb"large" also tells \LaTeX\ to use roman characters of a size
comparable to the japanese ones. I usually use \verb"12pt" document styles and
Table~\ref{12ptfontsizes} shows the appropriate font sizes for them.
\begin{table}[htb]
\begin{center}
\begin{tabular}{l|l}
\verb"\footnotesize" & \verb"/1000" \\
\verb"\small" & \verb"/1095" \\
\verb"\normalsize" & \verb"/1200" \\
\verb"\large" & \verb"/1440" \\
\verb"\Large" & \verb"/1728" \\
\verb"\LARGE" & \verb"/2074" \\
\verb"\huge" & \verb"/2488"
\end{tabular}
\end{center}
\caption{{\tt 12pt} Font Sizes.}
\label{12ptfontsizes}
\end{table}
Finally, note the \verb"%" at the end of the \verb"\footnote" line in the last
example. The filter will not append it for you since this is a roman end of the
line. But this \verb"%" is essential to prevent \LLaTeX\ from inserting some
inter-word space between the footnote number and the following japanese
character.
\subsection{Font Tables}
\label{fonttables}
I occasionally come across a japanese character that my japanese text editor
cannot insert in the text for me. This is usually the result of an incomplete
kanji lookup dictionary or a consequence of wanting to use extended JIS~24
characters. In such cases, one has to enter the character by hand. There are a
number of ways to do that.
Your japanese text editor may support character entry by \mbox{MS-kanji} or EUC
numbers. That is certainly the most preferable solution. If not, you could use
\mbox{Alt-Combinations} under a word processor to enter the arbitrary
characters in your text. Modifying the source file in these fashions is the
best approach.
You could also choose to leave a few blank spaces at the right places in the
source file, process it with \verb"JEM2TEX", and then insert a few \verb"\kk"
macros with the proper kanji fonts and symbol numbers. Unfortunately, such a
patch must be performed every time the original source file is modified and
processed by \verb"JEM2TEX". This is why I never proceed this way.
Because of this foreseeable occasional need, I thought it would be useful to
create font tables like the ones found in Appendix~F of the {\TeX}book. They
would have to mention the JIS~24 dot font numbers along with the EUC number
pairs. I designed such tables at magstep~$3.0$ and managed to squeeze three
\JemTeX\ fonts per page.
My Pascal program \verb"FONTABLE" creates a 60~Kb japanese file
\verb"fontable.jem" for you in the current directory. Then, simply process
that file with \verb"JEM2TEX" in automatic mode to eventually obtain
\verb"fontable.tex". Finally, complete the process with big \LaTeX\, which
should yield a twenty page document ready for previewing and printing.
You may have to divide and process this document in smaller pieces for several
reasons. Perhaps you only have a small version of \TeX. Perhaps your printer
driver has difficulty processing it. This can be caused by your computer
lacking memory, but is more likely nowadays to be caused by a primitive printer
driver lacking a decent memory management system. Perhaps you are using a laser
printer with only 1~Mb of memory. Note that dot matrix printers do not suffer
from such lack of memory problems since they have very little memory. Their
language is very verbose since the fonts are explicitly supplied each time they
are used.
If needed, you should divide the file \verb"fontable.jem", but not the file
\verb"fontable.tex" unless you also modify the individual headers to avoid
loading a lot of fonts for nothing. I think the former approach is easier and
less error prone. If splitting \verb"fontable.jem" still does not work for you,
talk to me!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{\JemTeX\ Quick Reference}
\typeout{4 JemTeX Quick Reference}
\label{jemtexquickreference}
\vspace{1cm}
\begin{quote}%Don't put spaces after the next line!
\begin{verbatim}
MF &cm kanjiaa >NUL:
\end{verbatim}
\end{quote}
\begin{center}
METAFONT Proof Mode (page~\pageref{mftproof})
\end{center}
\vspace{1cm}
\begin{quote}
\begin{small}%Don't put spaces after the next line!
\begin{verbatim}
MF &cm \mode:=epsonfx; \mag:=magstep(0.0); \input kanjiaa.mf
\end{verbatim}
\end{small}
\end{quote}
\begin{center}
METAFONT Standard Mode (page~\pageref{mftstandard})
\end{center}
\vspace{1cm}
\begin{center}
\begin{tabular}{l|ccccccc}
Font Size & 1000 & 1095 & 1200 & 1440 & 1728 & 2074 & 2488 \\ \hline
Disk Space & 558 & 622 & 680 & 819 & 1008 & 1228 & 1530
\end{tabular}
\end{center}
\begin{center}
Space Requirements (240DPI)
\end{center}
\newpage
\vspace*{\fill}
\begin{center}
\begin{tabular}{ll}
\mbox{$\left.\parbox{4.6cm}{%
\verb"/FixedWidth" \\
\verb"/FixedX" \\
\verb"/NoProportionalWidth" \\
\verb"/NoProportionalX"}\right\}$} &
Fixed width (page~\pageref{widthheight}). \\[8mm]
\mbox{$\left.\parbox{4.6cm}{%
\verb"/NoFixedWidth" \\
\verb"/NoFixedX" \\
\verb"/ProportionalWidth" \\
\verb"/ProportionalX"}\right\}$} &
Minimized width (page~\pageref{widthheight}). \\[8mm]
\mbox{$\left.\parbox{4.6cm}{%
\verb"/FixedHeight" \\
\verb"/FixedY" \\
\verb"/NoProportionalHeight" \\
\verb"/NoProportionalY"}\right\}$} &
Fixed height (page~\pageref{widthheight}). \\[8mm]
\mbox{$\left.\parbox{4.6cm}{%
\verb"/NoFixedHeight" \\
\verb"/NoFixedY" \\
\verb"/ProportionalHeight" \\
\verb"/ProportionalY"}\right\}$} &
Minimized height (page~\pageref{widthheight}). \\[8mm]
\parbox{4.6cm}{\verb"/Standard"} &
Standard positioning (page~\pageref{positioning}). \\
\parbox{4.6cm}{\verb"/Dictionary"} &
Dictionary positioning (page~\pageref{positioning}). \\
\parbox{4.6cm}{\verb"/Batch"} &
Batch mode (page~\pageref{batch}).
\end{tabular}
\end{center}
\vspace{3mm}
\begin{center}
\verb"JIS2MF" Parameters
\end{center}
\vspace*{\fill}
\newpage
\vspace*{\fill}
\begin{center}
\begin{tabular}{ll}
\parbox{3cm}{\verb"/EUC"} &
Extended UNIX code (page~\pageref{euc}). \\[1mm]
\mbox{$\left.\parbox{3cm}{%
\verb"/MSkanji" \\
\verb"/ShiftJIS"}\right\}$} &
MS-kanji code (page~\pageref{mskanji}). \\[3mm]
\parbox{3cm}{\verb"/Extended"} &
Extended characters (page~\pageref{extended}). \\
\parbox{3cm}{\verb"/Standard"} &
Standard characters (page~\pageref{standard}). \\
\parbox{3cm}{\verb"/LaTeX"} &
\LaTeX\ header (page~\pageref{header}). \\[1.5mm]
\mbox{$\left.\parbox{3cm}{%
\verb"/TeX" \\
\verb"/MuTeX"}\right\}$} &
\TeX\ header (page~\pageref{header}). \\[4mm]
\mbox{$\left.\parbox{3cm}{%
\verb"/Space" \\
\verb"/Extra" \\
\verb"/ExtraSpace"}\right\}$} &
Spaces added (page~\pageref{spacing}). \\[6mm]
\mbox{$\left.\parbox{3cm}{%
\verb"/NoSpace" \\
\verb"/NoExtra" \\
\verb"/NoExtraSpace"}\right\}$} &
No spaces added (page~\pageref{nospaces}). \\[6mm]
\mbox{$\left.\parbox{3cm}{%
\verb"/EOL" \\
\verb"/Percent" \\
\verb"/Comment"}\right\}$} &
\verb"%" added (page~\pageref{eol}). \\[6mm]
\mbox{$\left.\parbox{3cm}{%
\verb"/NoEOL" \\
\verb"/NoPercent" \\
\verb"/NoComment"}\right\}$} &
No \verb"%" added (page~\pageref{eol}). \\[6mm]
\mbox{$\left.\parbox{3cm}{%
\verb"/1000 /0.0 /0" \\
\verb"/1095 /0.5" \\
\verb"/1200 /1.0 /1" \\
\verb"/1440 /2.0 /2" \\
\verb"/1728 /3.0 /3" \\
\verb"/2074 /4.0 /4" \\
\verb"/2488 /5.0 /5"}\right\}$} &
Initial japanese font size (page~\pageref{fonts}).
\end{tabular}
\end{center}
\vspace{3mm}
\begin{center}
\verb"JEM2TEX" Parameters
\end{center}
\vspace*{\fill}
\newpage
\vspace*{\fill}
\begin{center}
\begin{tabular}{l|l}
\verb"\hh" & Allow japanese hyphenation (page~\pageref{hyphen}). \\
\verb"\eeee" & Insert big space (page~\pageref{bigmedium}). \\
\verb"\eee" & Insert medium space (page~\pageref{bigmedium}). \\
\verb"{}" & Prevent hyphenation (page~\pageref{preventh}) and space
insertion (page~\pageref{prevents}).
\end{tabular}
\end{center}
\begin{center}
Quick Fixes
\end{center}
\vspace{1cm}
\begin{center}
\begin{tabular}{l|l}
\verb"\footnotesize" & \verb"/1000" \\
\verb"\small" & \verb"/1095" \\
\verb"\normalsize" & \verb"/1200" \\
\verb"\large" & \verb"/1440" \\
\verb"\Large" & \verb"/1728" \\
\verb"\LARGE" & \verb"/2074" \\
\verb"\huge" & \verb"/2488"
\end{tabular}
\end{center}
\begin{center}
\verb"12pt" Font Sizes (page~\pageref{12points})
\end{center}
\vspace*{\fill}
\end{document}